Naver ShortURL API 구현
Naver ShortURL API 구현
단축URL을 사용하기 위해서 찾아본 결과 Bit.ly
와 네이버 Open API-단축URL
을 비교해본 결과 공짜로 사용할 때 하루의 사용할 수 있는 건수가 많은 네이버 Open API를 선택(하루 25,000건)
순수하게 단축URL을 만드는 것이 아니라 해당 링크에 대한 통계 데이타가 중요하다면 네이버 Open API
보다는 Bit.ly
사용을 추천한다.
Naver Open API – 단축URL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
public class NaverShortUrlUtils {
private static Logger logger = LoggerFactory.getLogger(NaverShortUrlUtils.class);
// Naver ShortURL API
private static String SERVER_URL = "https://openapi.naver.com/v1/util/shorturl.json";
// CLIENT_ID
@Setter
protected String CLIENT_ID = "NAVER_DEV_CLIENT_ID";
// CLEINT_SECRET_KEY
@Setter
protected String CLIENT_KEY = "NAVER_DEV_CLIENT_SECRET_KEY";
@SuppressWarnings("unchecked")
public String shorten(String url){
String ret = null;
HttpMethod method = null;
HttpClient client = new HttpClient();
method = new PostMethod(SERVER_URL);
method.setRequestHeader("X-Naver-Client-Id", CLIENT_ID);
method.setRequestHeader("X-Naver-Client-Secret", CLIENT_KEY);
NameValuePair[] parameters = {
new NameValuePair("url", url),
};
method.setQueryString(parameters);
try{
client.executeMethod(method);
String responseJson = method.getResponseBodyAsString();
Map item = new ObjectMapper().readValue(responseJson, HashMap.class);
if(!ObjectUtil.isNull(item) && ((String)item.get("code")).equals("200")){
Map data = (Map) item.get("result");
ret = (String) data.get("url");
logger.info("{} -> {} Convert SHORTEN URL", url, ret);
}else{
String errorMessage = item.get("code") + " - " + item.get("message");
logger.error(errorMessage);
}
}catch (HttpException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return ret;
}
}
This post is licensed under
CC BY 4.0
by the author.