회사에서 앱에 버전정보를 관리하는 툴을 개발하여 사용하고 있습니다.
다운로드 화일에 대한 메일을 보낼수도 있고 URL 복사해서 보낼수도 있고 카톡을 통해 보낼수도 있도록 만들었죠
그런데 다운로드 화일에 정보를 저장하는 특정 파라메터가 너무 길어 복사하거나 카톡을 통해 보낼때 불편한 부분이
많았습니다.
그래서 그 URL을 줄여보고자 Google 을 검색해 보니 역시 구글사마더군요.
URL Shortener API 를 통해 goo.gl 이라는 도메인으로 단축 URL을 제공해 주더군요.
하루에 커넥션 100만이라서 공개용으로 사용하지 않는다면 문제도 없을듯 해서 해당 툴에 적용해 보았고 만족해했습니다.
테스트 환경 : windows7, centos6.4, php5.3 이상
1. 구글 개발자 콘솔에서 해당프로젝트의 API Key 발급
구글 개발자 콘솔에서 해당 프로젝트에 클릭하신 다음 APIs & auth > Credentials 메뉴에 접속해보면
Public API access 라는 항목을 볼수 있고 CREATE NEW KEY 버튼을 통해 APK Key를 발급받을수 있습니다.
이때 Key 는 Server Key를 선택하고 사용할서버의 IP를 넣어 주시면 됩니다.
2. 단축 URL 을 접속하기 위한 PHP 코드
http://davidwalsh.name/google-url
위 사이트를 통해 PHP 소스코드를 받아서 제쪽에 맞게 변경해 보았습니다.
다운로드 화일에 대한 메일을 보낼수도 있고 URL 복사해서 보낼수도 있고 카톡을 통해 보낼수도 있도록 만들었죠
그런데 다운로드 화일에 정보를 저장하는 특정 파라메터가 너무 길어 복사하거나 카톡을 통해 보낼때 불편한 부분이
많았습니다.
그래서 그 URL을 줄여보고자 Google 을 검색해 보니 역시 구글사마더군요.
URL Shortener API 를 통해 goo.gl 이라는 도메인으로 단축 URL을 제공해 주더군요.
하루에 커넥션 100만이라서 공개용으로 사용하지 않는다면 문제도 없을듯 해서 해당 툴에 적용해 보았고 만족해했습니다.
테스트 환경 : windows7, centos6.4, php5.3 이상
1. 구글 개발자 콘솔에서 해당프로젝트의 API Key 발급
구글 개발자 콘솔에서 해당 프로젝트에 클릭하신 다음 APIs & auth > Credentials 메뉴에 접속해보면
Public API access 라는 항목을 볼수 있고 CREATE NEW KEY 버튼을 통해 APK Key를 발급받을수 있습니다.
이때 Key 는 Server Key를 선택하고 사용할서버의 IP를 넣어 주시면 됩니다.
2. 단축 URL 을 접속하기 위한 PHP 코드
http://davidwalsh.name/google-url
위 사이트를 통해 PHP 소스코드를 받아서 제쪽에 맞게 변경해 보았습니다.
class GoogleUrlApi { function GoogleURLAPI($fKey) { $this->fApiUrl = "https://www.googleapis.com/urlshortener/v1/url?key=".$fKey; } function shorten($fUrl) { $rResponse = $this->send($fUrl); return count($rResponse)!=0 ? $rResponse : false; } function expand($fUrl, $fOption = null) { // $fOption Values : ANALYTICS_CLICKS ANALYTICS_TOP_STRINGS FULL $rResponse = $this->send($fUrl, false, $fOption); return count($rResponse)!=0 ? $rResponse : false; } function send($fUrl, $fShorten = true, $fOption = null) { $fOption = $fOption ? "&projection=$fOption": null; $ch = curl_init(); if($fShorten==true) { curl_setopt ($ch, CURLOPT_URL,$this->fApiUrl); curl_setopt ($ch, CURLOPT_POST,1); curl_setopt ($ch, CURLOPT_POSTFIELDS,json_encode(array("longUrl"=>$fUrl))); } else { curl_setopt ($ch, CURLOPT_URL,$this->fApiUrl.'&shortUrl='.$fUrl.$fOption); } curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt ($ch, CURLOPT_SSLVERSION,3); curl_setopt ($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json")); curl_setopt ($ch, CURLOPT_HEADER, 0); curl_setopt ($ch, CURLOPT_TIMEOUT, 30); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); $rReturn = curl_exec($ch); curl_close($ch); return json_decode($rReturn,true); } } |
|
TAG •