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で示されたデータ表示しています。

IPv6基礎検定

YouTubeチャンネルやってます!