« 2017/11 »
      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    

Recent Trackback»


bitlyj - A Java interface to the bit.ly API

IT/Programming | 2010.11.04 00:53 | Posted by reaper91

bit.ly

정체를 알 수 없는 마스코트의 생명체는 일단은 복어(?)로 추정된다.

요새 트위터를 좀 하다 보니까 bit.ly 사이트에 갈일이 꽤 생겼는데 귀찮게 매번가서 URL 바꾸기도 귀찮고 그래서 아예 내 컴퓨터 상에서 바꿔주는 프로그램이 없나 찾아 봤다. 그런데 입력한 URL을 bit.ly에서 사용하는 형식으로 바꿔주는 툴 같은건 없고 라이브러리가 제공되고 있다.

bitlyj - A Java interface to the bit.ly and j.mp APIs


C#, JSP, PHP, Python 등의 여러가지 형태로 클라이언트 라이브러리가 존재하는데 뭐 딱히 그렇게 마음에 드는건 없고 Java 환경에서 동작하는 놈을 골랐다. bitlyj 라고 해서 2.0 버전까지 나온게 있는데 이걸 사용해 보기로 했다. 사이트에 가서 bitlyj-2.0.0.jar 파일을 다운 받은 후 Java 라이브러리에 추가한 다음에 API를 사용해 봤다.
일단 API를 사용하기 위해서는 그냥은 못하고 이렇게 bit.ly 사이트에 회원 가입한 다음에 API Key를 요청해서 API 사용 권한을 할당 받아야 한다. 기존의 Key가 마음(?)에 들지 않는다거나 할때는 Reset 버튼을 눌러주면 새롭게 API Key를 다시 재 발급해 준다.
import com.rosaloves.bitlyj.*;
import static com.rosaloves.bitlyj.Bitly.*;
우선 bitlyj 라이브러리 관련 패키지 부터 import 시켜준 다음에...
Provider bitly;
bitly=as("reaper91", "R_7110eda4d09e062aa5e4a390b0a572ac0d2c0220");
as() 함수에 bit.ly 가입 ID와 할당받은 API Key를 넣어준 후 API 사용권한을 얻어와야 한다.
bitly.call(shorten());
bitly.call(expand());
정상적으로 사용권한을 받아 오는데 성공하면 bitly의 멤버함수인 call()을 이용해서 URL을 짧게 인코딩 시켜주는 shorten(), 짧아진 URL을 다시 원래대로 디코딩 해주는 expand() 를 호출할 수 있다.
Url shortUrl;

String strUrl="http://reaper91.tistory.com/";

String strShortUrl="";

shortUrl=bitly.call(shorten(strUrl));

strShortUrl=shortUrl.getShortUrl();

System.out.println(strShortUrl);
shorten() : URL 인코딩
Url longUrl;

String strLongUrl="";

longUrl=bitly.call(expand(strShortUrl));

strLongUrl=longUrl.getLongUrl();

System.out.println(strLongUrl);
expand() : URL 디코딩

call()을 통해서 호출한 shorten(), expand() 함수는 Url 형태의 클래스를 반환해 주는데 shorten()으로 인코딩한 Short URL (http://bit.ly/bUWuTp) 주소는 getShortUrl(), expand()로 디코딩한 원래의 Long URL (http://reaper91.tistory.com/) 주소는 getLongUrl() 과 같은 Url의 멤버함수로 뽑아낼 수 있다.
Url shortUrl;

String strUrl="http://reaper91.tistory.com/";

String strShortUrlGlobalHash="";
String strShortUrlUserHash="";

shortUrl=bitly.call(shorten(strUrl));

strShortUrlGlobalHash=shortUrl.getGlobalHash();
strShortUrlUserHash=shortUrl.getUserHash();

System.out.println(strShortUrlGlobalHash);
System.out.println(strShortUrlUserHash);
Url longUrl;

String strLongUrlGlobalHash="";
String strLongUrlUserHash="";

longUrl=bitly.call(expand(strShortUrl));

strLongUrlGlobalHash=longUrl.getGlobalHash();
strLongUrlUserHash=longUrl.getUserHash();

System.out.println(strLongUrlGlobalHash);
System.out.println(strLongUrlUserHash);
Url의 멤버함수에는 getGlobalHash(), getUserHash() 라는 것도 존재 하는데 http://bit.ly/ 문구가 없는 순수 인코딩 값 (bUWuTp)만 반환해 준다. bit.ly 사이트와 getShortUrl()의 결과 값을 비교해 봤을 때 최종적으로 getUserHash()가 출력해준 인코딩 값을 Short URL 로서 활용하고 있는것 같다.
저작자 표시 비영리 변경 금지
신고

'IT/Programming' 카테고리의 다른 글

bitlyj - A Java interface to the bit.ly API  (1) 2010.11.04

댓글을 달아 주세요

  1. 전병태 2011.09.22 13:52 신고  댓글주소  수정/삭제  댓글쓰기

    정보 감사합니다. 출처 남기고 담아갑니다...^^

 

티스토리 툴바