bit.ly Short URL API – PHP로 Shorten 메소드 이용해보기[ 편집자 : Blueⓘ ]
2010년 02월 07일 오후 04시 37분 태그 : , / 조회수 : 982

그럼 앞의 두 강좌를 기본으로 PHP를 이용한 bit.ly API 코딩하기 실전으로 들어가도록 하겠습니다. 이 API 코딩법만 익히게 되면 다른 bit.ly API를 이용하는것도 어렵지 않으니 집중하고 내용을 이해 하도록 노력해 주세요.

P.S. 그리고 댓글좀 써주세요 ㅡㅡ; 댓글 없는 포스팅을 보게되면 강좌를 연재할 의욕이 꺽인답니다. ^^

PHP로 Shorten메소드 호출

이제 어떠한 방식으로 데이터를 주고받는지 알게 되었다면 PHP를 이용하여 bit.ly의 API를 이용하여 짧은 URL을 얻어오는 방법을 설명 하겠습니다. 이번 강의에서 사용될 PHP의 함수는 아래와 같습니다.

  1. file_get_contents : 로컬내 파일 또는 원격지의 파일 내용을 문자열로 가져오는 함수
  2. json_decode : JSON으로 만들어진 문자열을 JSON 객체로 변환 해주는 함수

위 두 함수는 모두 PHP 코어의 일부분으로 따로 설치 하실 필요는 없습니다. 다만 PHP 버젼에 따라 작동되지 않을 수 있습니다.

그럼 간단하게 긴URL을 bit.ly에 던져서 짧은URL을 얻어 출력하는 내용으로 코딩 해보도록 하겠습니다.

$data = file_get_contents("http://api.bit.ly/shorten?version=2.0.1&longUrl=http://www.blueiblog.com/ko/archives/1976&login=xxxx&apiKey=xxxxxxxxxxxx");
$data = json_decode($data);
foreach($data->results as $row) {
        $surl = $row->shortCNAMEUrl;
}
echo $surl;

그럼 이번에는 함수를 만들어서 언제든 빼 쓸 수 있도록 해보겠습니다.

/**
 * License by Blueⓘ
 *
 * @param String longURL 짧게 변경할 긴 문자열의 URL
 * @return String 짧게 변환된 URL
 */
function getShortURL($longURL) {
        $data = file_get_contents("http://api.bit.ly/shorten?version=2.0.1&longUrl=".$longURL."&login=xxxx&apiKey=xxxxxxxxxxxx");
        $data = json_decode($data);
        foreach($data->results as $row) {
                $surl = $row->shortCNAMEUrl;
        }
        return $surl;
}
 
echo getShortURL("http://test.com");
// OUTPUT : http://bit.ly/9ICmwA

이 글이 도움이 않되셨더라도 왼쪽 아래에 있는 손 모양의 추천을 눌러주세요...^^

엮인글 주소 : http://www.blueiblog.com/ko/archives/2029/trackback
  • 이 숫자를 스팸 방지키란에 입력하여 주세요.
    • 작성자 : 지나는이
    • 2010-06-18 오후 12:02

    • 작성자 : 아빠불당
    • 2010-06-06 오후 10:49

    요즘 jQuery를 공부중이라, jQuery로 하는 것을 구글링 했는데, 좋은게 있네요.
    http://jquery-howto.blogspot.com/2009/04/shorten-long-urls-with-jquery-bitly.html

      • 작성자 : Blueⓘ
      • 2010-06-07 오전 8:46

      좋은 정보 감사합니다. bit.ly API가 JSON 데이터를 제공하기때문에 JavaScript(jQuery)를 이용한 처리도 가능합니다 ^^

    • 작성자 : ak
    • 2010-05-07 오후 3:21

    그런데 json_decode같은 함수가 기본적으로 없지 않나요? 다른 라이브러리 include하고 썼던걸로 기억하는데

    • 작성자 : ak
    • 2010-05-07 오후 3:20

    유용하네요 감사합니다!