2013/02/25

Google URL Shortener API を使ってURLを短縮してみる

Goolge URL Shortener APIは、API経由で、URLを短縮してくれるGoogleのサービスです。URLの短縮自体は、Twitterなど文字数制限がある局面でしか意味がありませんが、URLを短縮することでURLのクリック回数をトラッキングできるようになるので、便利かもしれません。

API仕様

URLの短縮化、クリック回数など統計情報の取得は、それぞれ専用のAPIが用意されています。以下それぞれ、PHPでAPIアクセスした場合のサンプルです。Content-Typeは、application/json という特殊な形式で、POSTデータにJSONデータをぶっこみます。

1. URLの短縮化


https://www.googleapis.com/urlshortener/v1/url?key=APIキー  (POST)

パラメータ(application/json形式)
longUrl - 短縮するURL


2. 短縮URLの解析


https://www.googleapis.com/urlshortener/v1/url?shortUrl=短縮されたURL&projection=FULL  (GET)

サンプル(URLの短縮)

URLの短縮化は、URLをJSON形式でポストするだけです。簡単ですね。戻り値は、短縮化されたURLになります。APIキーは、Google Developerに登録して自分APIキー取得し、置き換えてください。
<?php
define('GOOGLE_API_KEY', 'あなたのAPIキー');
function create_short_url($long_url);
{
 $curl = curl_init();
 curl_setopt($curl, CURLOPT_URL, 'https://www.googleapis.com/urlshortener/v1/url?key='.GOOGLE_API_KEY);
 curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-type: application/json'));
 curl_setopt($curl, CURLOPT_POST, 1);
 curl_setopt($curl, CURLOPT_POSTFIELDS, '{"longUrl":"'.$unique_long_url.'"}');
 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

 $res = curl_exec($curl);
 curl_close($curl);

 $result = json_decode($res);

 if(isset($result->error)) {
  die('WARN : Google URL-shortener API failed.');
 }

 return $result->id;
}

// sample
echo create_short_url('http://yahoo.co.jp');

サンプル(短縮URLの解析)

クリック数の取得も単純なAPIです。パラメータ short_url として渡しているのは、短縮APIが返してきたURLです。クリック数以外の取得できる情報は、こちらのAPI ドキュメントを見てください。
<?php
function get_url_analytics($short_url) 
{
 $curl = curl_init();
 curl_setopt($curl, CURLOPT_URL, 'https://www.googleapis.com/urlshortener/v1/url?shortUrl='.$short_url.'&projection=FULL');
 curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-type: application/json'));
 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

 $res = curl_exec($curl);
 curl_close($curl);

 return json_decode($res);
}

// Sample
$result = get_url_analytics('http://goo.gl/RMrR4');
echo $result->analytics->allTime->shortUrlClicks; // 短縮URLのクリック回数

まとめ

こんな感じで簡単に使えるので、ソーシャルネットワークでの効果を独自に集計しなければならなくなったときとか、使ってみるといいかもしれません。

0 件のコメント:

コメントを投稿