PHPでbit.lyの短縮URLを取得(Services_ShortURL)

短縮URLサービスをPHPから呼び出す方法について。 PEAR::Services_ShortURLというライブラリを利用する。

まず、Services_ShortURLをインストールする。 channel指定しろというエラーが出たので指定する。 あと、Debianでは標準でphp5-curlが入っていなかったので入れる。

#pear install channel://pear.php.net/Services_ShortURL-0.3.1
#aptitude install php5-curl

bit.lyを利用するにはAPI Keyが必要なので、bit.lyのユーザアカウントを登録する。 もしtr.imなんかを利用するのであればこの手順は必要ない。

後はコーディングするだけ。 Webを検索すると以下のようなサンプルが見つかった。 (PHPからbit.lyやtr.im等のURL短縮サービスをまとめて扱える「PEAR::Services_ShortURL」)

<?php

require('Services/ShortURL.php');

Services_ShortURL::setServiceOptions('Bitly', array(
    'login'  => LOGINID
    'apiKey' => APIKEY
));
$api = Services_ShortURL::factory('Bitly');
echo $api->shorten(短縮したいURL); 
?>

要はログインIDとAPI KeyとURLを指定してやればこれだけで動く。 ・・・のだが、ここでハマった。 bit.lyのアカウントを作成するときtwitter連動で作成した。 ユーザ名の所にtwitter IDが表示されていたので、 当然login IDはtwitter IDと同じだと思って入力して、 @をつけたり外したり、まだbit.lyのDB内で連携取れてないのかなと思って待ったりしてみたがどうにも解決せず。

端的に結論を書くと、twitterと連携して作ったアカウントのLogin IDにはランダム文字列が入っている。 例えば右上のアカウントメニューからLink Archiveを選択すると、 HOGEHOGE’s Link Archive と書かれたページが表示される。 このHOGEHOGEの部分がLogin IDでした・・・

ちなみにAPI Keyは右上のアカウントメニュー > Settingで表示できるページの API Keyのところにある。 並べて書いといてくれよもう(つД`)

はまるとしたらここだけなので、とても簡単にできるはず。

Written on July 30, 2011