Twitterの流行でURLを短くするサービスが多く利用されるようになりましたね。
bit.lyはその中でも有名ですが、今回はbit.lyで提供されているAPIを使って、自分のサイトに設置したフォームからでも短縮URLを使える方法をご紹介します。
ちなみにbit.lyの便利さはこちらを参考にするとよくわかります。
短縮URLサイト「bit.ly」のアカウントを持ってると利用できる便利機能まとめ*二十歳街道まっしぐら
アクセス解析なんかもできるんです。
それでは早速。
アカウント登録
bit.lyのAPIを使うにはアカウントが必要です。無料で手軽に登録できるので、以下のリンクからどうぞ。
Twitterのアカウントも同時に登録しておくとブックマークレットなどで連動出来ます。
Create a Free bit.ly Account
これでAPIを使えるようになりました。APIを使うためのAPI LoginとAPI Keyは、bit.lyにログインして右隅の「Account」にアクセスすると左側に表示されます。
API
今回利用するbit.lyのAPIのドキュメントを載せておきます。
ApiDocumentation – bitly-api – Documentation of the bit.ly REST API methods – Project Hosting on Google Code
今回はこの中でも、URLを短縮するもの(/shorten)に限って紹介します。
URLを短縮する時には、http://api.bit.ly/shorten に各パラメータを投げ、返ってくるデータを利用します。
まずはURLを送信するためのフォームを設置します。
<form action="" method="get"> <input type="text" name="bitly" id="bitly" value="" /> <input type="submit" value="shorten" /> </form>
URLをGETメソッドで送信します。送信されたものはPHPで処理します。
PHPの処理内容。
<?php
$long_url = htmlspecialchars($_GET['bitly'], ENT_QUOTES);
$req = "http://api.bit.ly/shorten?login=yourAccountName&apiKey=yourApiKey&version=2.0.1&longUrl=".$long_url;
$contents = file_get_contents($req);
if(isset($contents)) {
$url = json_decode($contents, true);
}
}
echo $url['results'][$long_url]['shortUrl'];
?>
APIに投げるパラメータは以下の通りです。
| login | Account画面で確認できるAPI Login |
| apiKey | Account画面で確認できるAPI Key |
| version | 2.0.1(固定) |
| longUrl | 短縮したいURL |
| format | json or xml (デフォルトはjson) |
今回はlongUrlのみフォームから取得し、他は全部決め打ちでやっています。
formatパラメータは今回使っていませんので、データはデフォルトのJSON形式でかえってきます。
ちなみに、今回解説しませんが、longUrlは複数渡すことができます。
やっているのはfile_get_contents関数でURLからデータを取得し、それをjson_decode関数を使って連想配列にして出力する、という手順です。
json_decodeはPHP5.2.0以上でしか使えないので、PHP4などの環境の方はデータをxmlで取得するなどしてください。
全文はこちら。短縮URLもフォームに出力するようにしました。
<?php
$long_url = htmlspecialchars(@$_GET['bitly'], ENT_QUOTES);
$req = "http://api.bit.ly/shorten?login=yourAccountName&apiKey=yourApiKey&version=2.0.1&longUrl=".$long_url;
$contents = file_get_contents($req);
if(isset($contents)) {
$url = json_decode($contents, true);
}
?>
<form action="" method="get">
<input type="text" name="bitly" id="bitly" value="<?php echo @$url['results'][$long_url]['shortUrl']; ?>" />
<input type="submit" value="shorten" />
</form>
APIはいろいろ使ってみると楽しいですね。また他のAPIにも挑戦したいと思います。

[...] PHPでbit.lyのAPIを使って自分のサイトで短縮URLを使えるようにしてみる [...]