bit.lyの短縮URLを生成するPerlスクリプトを作ってみた

bit.lyの短縮URLを生成するPerlスクリプトを作ってみた はてなブックマーク - bit.lyの短縮URLを生成するPerlスクリプトを作ってみた


◆bit.lyの短縮URLを生成スクリプト

bit.lyの短縮スクリプトを生成するのに、わざわざbit.lyを開くのは面倒(;´Д`) コマンドラインで一括変換してくれれば楽じゃね?と、コマンドラインで使えるモノをつくってみました。ちなみに、環境はPerlです。

出来たものは

$ shorturl.pl <URL>

こちらを実行すると、bit.ly のAPIを叩いて、短縮URLを返してくれるというモノ。

◆前準備

今回使ったのは CPAN に公開されていた、WebService::Bitly モジュールを使います。サンプルコードが綺麗でわかりやすく、必要最低限のものがそろっていたので。組み込みは cpan コマンドを使えばとても簡単。

# cpan -i WebService::Bitly

私の環境では、結構いろいろな追加モジュールが必要になりました。必要になるものなので、全部いれてしまいます。

それと、bit.ly でAPI確認をしておく必要があります。

http://bit.ly/a/your_api_key/

この URL にアクセスすると、ユーザ名(Username)と API Key が表示されるので、控えておきます。

◆スクリプト shorturl.pl

ここまで来ると、あとはスクリプトを書くだけ。といっても、ほとんどサンプルと替わりません。

!/usr/bin/perl

use WebService::Bitly;;

my $url = $ARGV[0];

if ($url !~ /s?https?:\/\/[-_.!~*'()a-zA-Z0-9;\/?:\@&=+\$,%#]+/g) {
	print "NG URL\n";
} else {

	my $bitly = WebService::Bitly->new(
		user_name => 'bit.lyのUsername',
		user_api_key => 'bit.lyのAPI Key'
	);

	my $result = $bitly->shorten($url);
	if ($result->is_error) {
		warn $result->status_code;
		warn $result->status_txt;
	} else {
		my $short_url = $result->short_url;
		print $short_url,"\n";
	}
}

exit;

あとは、chmod +x ./shorturl.pl と実行属性をつけるだけで動きます。

動かし方

$ ./shorturl.pl http://pocketstudio.jp/log3
http://bit.ly/g8ZhLt

このように URL を引数に入れます。正常に処理されれば、短縮URLが表示されます。引数のURLが適切でない場合は「NO URL」と画面に表示し、何も返しません。〜という、シンプルなモノでした。自分の備忘録がてら。