MEMORVA

Twitter 短縮URL TinyURLのAPI

更新:

Twitterなどで使われているURL短縮サービス「TinyURL」のAPI。

Twitter の短縮URL

Twitter ではURLの表記を短くするサービスがよく使われる。
http://tinyurl.com/http://bit.ly/http://j.mp/ などが使われる。

これらのサイトにあるフォームにURLを入力すると、短縮されたURLが生成される。
元々短いURLは、短縮されない場合がある。
このサービスを利用し、自分のサイトの各ページで短縮URLを生成するには、各サイトで提供されているAPIを利用する。
また、Twitterクライアントアプリを作る際、自動的に短縮URLを生成する機能を付ける場合にも利用できる。
bit.ly や j.mp は、APIを利用するにはサイトでユーザー登録をする必要があるが、TinyURL では今のところ必要ない。


TinyURLのAPI

TinyURL は以下のAPIがある。
http://tinyurl.com/api-create.php?url=短縮したいURL
http://tinyurl.com/api-create.php?url=http://example.com/ のように url= の後に短縮したいURLを書き、そのURLをたたくと短縮URLがテキストで返ってくる。
現在このAPIは公式には公開されていないが、このAPIを利用している人は結構いるようだ。

PHPでこのレスポンスを取得するには、ファイルを読み込む file() や file_get_contents() などを使う。
ただし、php.ini で allow_url_fopen が on になっていないと外部サイトのファイルを読み込めない。
また、PEARを利用する方法もあるようだが、使うほどのことでもないかもしれない。
ソケットを使うなど方法はいろいろある。
$file = file('http://tinyurl.com/api-create.php?url=http://www.example.com/test/test.html');
print_r($file);

$file = file_get_contents('http://tinyurl.com/api-create.php?url=http://www.example.com/test/test.html');
echo $file;
Perlは、LWP::UserAgent を利用する方法などがある。
use LWP::UserAgent;
$url = 'http://tinyurl.com/api-create.php?url=http://www.example.com/test/test.html';
$ua = LWP::UserAgent->new();
$req = HTTP::Request->new('GET', $url);
$res = $ua->request($req);
$content = $res->content;
print $content;