상상쓰

[Firebase] 짧은 동적 링크 만들기 (java) 본문

Programming

[Firebase] 짧은 동적 링크 만들기 (java)

상상쓰 2021. 7. 27. 16:34

 

참고 : https://sangsangss.tistory.com/107

 

[Firebase] 짧은 동적 링크 만들기 (jquery)

https://firebase.google.com/docs/dynamic-links/rest?authuser=1 REST API로 동적 링크 만들기  | Firebase 참고: 전체 Short Links API 참조는 참조 섹션에서 확인할 수 있습니다. Firebase Dynamic Links RES..

sangsangss.tistory.com

 

JAVA 에서 POST 방식으로 짧은 동적 링크를 요청할 수 있다.

 

import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;

try {
	JSONObject params = new JSONObject();
	JSONObject suffix = new JSONObject();
	params.put("longDynamicLink", "https://[URL 프리픽스]/?link=" + [긴 링크]);
	suffix.put("option", "SHORT");
	params.put("suffix", suffix);
	
	String hurl = "https://firebasedynamiclinks.googleapis.com/v1/shortLinks?key=[api_key]";
	URL url = new URL(hurl);
	HttpURLConnection http = (HttpURLConnection) url.openConnection();	

	http.setRequestMethod("POST");
	http.setRequestProperty("content-type", "application/json");
	http.setDoOutput(true);
	http.setDoInput(true);

	BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(http.getOutputStream()));
	bw.write(params.toString());
	bw.flush();
	bw.close();

	BufferedReader br = new BufferedReader(new InputStreamReader(http.getInputStream()));
	String temp = "";

	while ((temp = br.readLine()) != null) {
		result = result.concat(temp);	
	}

	br.close();

	JSONParser jp = new JSONParser();
	JSONObject jo = new JSONObject();
	jo = (JSONObject) jp.parse(result);
	result = (String) jo.get("shortLink"); // result = [동적 링크]

} catch (IOException e) {
	e.printStackTrace();
}

 

 

다음, 긴 링크에 parameter 가 있는 경우, params 변수를 아래와 같이 나눈다.

 

JSONObject params = new JSONObject();
JSONObject dynamicLInkInfo = new JSONObject();
JSONObject suffix = new JSONObject();

dynamicLinkInfo.put("dynamicLinkDomain", "[URL 프리픽스 (https 생략)]");
dynamicLinkInfo.put("link", "[긴 링크 (?, & 포함 URL)]");
suffix.put("option", "SHORT");
params.put("dynamicLinkInfo", dynamicLinkInfo);
params.put("suffix", suffix);

 

 

 

 

 

 

 

Comments