bit.lyのURL短縮機能を利用する
ここでは、HTTP::LiteとXML::DOMモジュールを使ってbit.lyのURL短縮機能を利用する方法を説明したいと思います。
bit.lyはURL短縮サービスです。 その短縮URLがクリックされた回数を取得するなどの機能があります。 2009年8月現在、bit.lyはTwitterでURL短縮を行う外部サービスとして利用されています。
URL短縮サービス利用クライアントサンプル
以下に単純なbit.lyクライアントを示します。
#!/usr/bin/perl
use HTTP::Lite;
use XML::DOM;
$http = new HTTP::Lite;
$login = 'hogehage'; # bit.lyで取得したID
$apikey = 'R_XXXXXXXXXXXX'; # bit.lyで取得したAPI Key
$url = "http://www.geekpage.jp/"; # 短縮したいURL
$ver = '2.0.1'; # 2009年8月6日現在はバージョン2.0.1
$resturl = "http://api.bit.ly/shorten?version=$ver&longUrl=$url&login=$login&apiKey=$apikey&format=xml";
# for debug
# print "URL : ";
# print $resturl;
# print "n";
$result = $http->request($resturl) || die $!;
$xmlstr = $http->body();
# for debug
# print $xmlstr;
# print "n";
$parser = new XML::DOM::Parser;
$doc = $parser->parse($xmlstr);
$nodes = $doc->getElementsByTagName('shortUrl');
print $nodes->item(0)->getFirstChild->getNodeValue;
print "n";
exit;
上記サンプルでは、HTTP::Liteを利用してbit.lyに対するHTTPを送信します。 bit.lyから以下のようなXMLデータがレスポンスとして送信されます。
<bitly>
<errorCode>0</errorCode>
<errorMessage></errorMessage>
<results>
<nodeKeyVal>
<userHash>4H2DK</userHash>
<shortKeywordUrl></shortKeywordUrl>
<hash>37H5AI</hash>
<nodeKey><![CDATA[http://www.geekpage.jp/blog/]]></nodeKey>
<shortUrl>http://bit.ly/4H2DK</shortUrl>
</nodeKeyVal>
</results>
<statusCode>OK</statusCode>
</bitly>
取得したXMLデータはXML::DOM::Parserのparseに渡されて、解析されます。 サンプルプログラムでは、解析したデータの中からshortUrlで示されたデータ表示しています。