본문 바로가기

Programming/etc

google shortener api를 이용한 url 프로그램.

<?php
$key = '이곳에 부여받은 key를 넣어주세요.';

class GoogleUrlApi {
  // key는 사용자요청에 따라 바꿀 수 있지만 apiURL은 google이 서비스를 중단하기 전까지는 고정 url이 됩니다.
  function GoogleURLAPI($key,$apiURL = 'https://www.googleapis.com/urlshortener/v1/url') {
    $this----->apiURL = $apiURL.'?key='.$key;
  }
  
  // url 줄이는 함수.
  function shorten($url) {
    $response = $this->send($url);
    return isset($response['id']) ? $response['id'] : "false";
  }
  
  // Send information to Google
  function send($url,$shorten = true) {
    // cURL 생성
    $ch = curl_init();
    
    if($shorten) {
      curl_setopt($ch,CURLOPT_URL,$this->apiURL);
      curl_setopt($ch,CURLOPT_POST,1);
      curl_setopt($ch,CURLOPT_HTTPHEADER,array("Content-Type : application/json"));
      curl_setopt($ch,CURLOPT_POSTFIELDS,json_encode(array("longUrl"=>$url)));
      curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    }
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
    
    $result = curl_exec($ch);
    // curl 종료
    curl_close($ch);
    // 결과 리턴.
    return json_decode($result,true);
  }    
}
?>
php를 배워가며 쓰다보니 꽤 어려웠습니다.

위 소스는 하나의 php파일입니다. 
key는 google shortener api 서비스를 이용하기 위해서
https://code.google.com/apis/console/?pli=1
에서 로그인 후에 보이는 화면에서 좌측 API Access 카테고리를 선택하시고
생성된 API key를 입력해주시면 됩니다.

상세하게 배운 내용들을 정리해 올리고싶지만 사실 curl에 대한 개념도 명확하게 서있지 않고;;
this 내장변수라고 해야할까요? 이것을 이용한 여러 사용법도 정확히 이해하고 있는 것이 아니라
상세한 내용은 하지 않겠습니다.

짧은 url을 생성하여 리턴해주는 위 소스코드를 사용하실 분은 위에서 알려드린대로
api key만 받아서 입력해주시고,
위 php파일을 require_once 하셔서 api key를 인자로하여 객체를 생성해주신 후
줄이기 원하시는 url을 생성된 객체의 shorten 메소드 인자로 넣어주시면 되겠습니다.
return되는 값은 줄어진 url 입니다.

리턴받는 모든 data들을 보시고 싶다면 $response 객체를
<pre><?php print_r($response); ?></pre>
이용하여 출력해보시면 됩니다.

위 클래스는 짧은 url을 이용한 웹어플리케이션을 만들 때 유용하겠습니다.
(특히나 sns 등의 서비스에 연동할 때 말이죠.)