안녕하세요.
비볼디에서 제공하는 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();

          }
     }
}