안드로이드 개발자 모임 게시판
(글 수 5,405)
안녕하세요.
비볼디에서 제공하는 API를 이용하여 단축 URL을 생성하는 방법 공유드립니다.
Bitly의 경우 1시간에 최대 1,000개 까지 링크를 생성할 수 있지만 비볼디는 제한이 없습니다.
저희 회사에서 회원 별로 수신거부 URL을 제공하기 때문에 단축 URL이 회원 수 만큼 있어야 합니다.
물론 비볼디 대시보드에서 엑셀로 1만개까지 대량 등록이 가능하지만
특정 조건에 맞아야 수신거부 URL을 만들어야 해서 API를 이용하여 단축 URL을 만들고 있습니다.
참 아래 소스 중 APIKey는 비볼디 대시보드의 개발자API 메뉴에서 Key를 만들고 만들어 진 Key를 입력하면 됩니다.
개발자 API 페이지: https://vivoldi.com/dashboard/dev?menuIdx=7
package com.example;
import okhttp3.*;
import org.json.JSONObject;
import java.io.File;
import java.io.IOException;
public class CreateLink {
public static void main(String[] args) {
JSONObject data = new JSONObject();
data.put("url", "https://www.facebook.com/vivoldi365");
RequestBody requestBody = RequestBody.create(MediaType.get("application/json; charset=utf-8"), data.toString());
Request request = new Request.Builder()
.url(https://vivoldi.com/api/v1/link/create)
.addHeader("Authorization", "APIKey oc3w9m4ytso9mv5eXXXXXXXXXXXXXXX")
.post(requestBody)
.build();
OkHttpClient client = new OkHttpClient();
try {
Response response = client.newCall(request).execute();
if (response.isSuccessful()) {
ResponseBody body = response.body();
if (body != null) {
String jsonText = body.string();
body.close();
JSONObject json = new JSONObject(jsonText);
if (json.getInt("code") == 0) {
System.out.println("Short URL: " + json.getString("result"));
} else {
System.out.println("Failed: " + String.format("[%d] %s", json.getInt("code"), json.getString("message")));
}
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}