コマンドラインから Google URL Shortener を使う方法



シェルと Perl を組み合わせてコマンドラインでさくっと短縮 URL を生成する方法。

Google URL Shortener コマンドラインツールサンプルコード

URL短縮用シェルスクリプト goo.gl.sh

#!/bin/sh
#google url shortener

echo $1
curl 'https://www.googleapis.com/urlshortener/v1/url?key=YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d "{'longUrl': '$1'}" \
2>/dev/null \
| perl -n -e 'm/id/i and m/\x22(http:.[^\x22]*)\x22/ and print qq{$1\n}'

作成したシェルスクリプトは alias を登録しておくと便利

alias gogl /path/to/goo.gl.sh

実行したところ

% gogl http://www.yahoo.co.jp/

http://www.yahoo.co.jp/

http://goo.gl/wNOy

Google API キーの入手方法

上記のシェルスクリプト中で「YOUR_API_KEY」となっているところは、Google にユーザ登録して自分用の「API キー」を入手しなければならない。

入手は https://code.google.com/apis/console/ から行う。

日本語での Google API キーの取得方法の説明が Google Maps 用のものしか無かったが、この説明と同じ作業を「3. Google Maps API v3 サービスを…」ではなく「URL Shortener API」と読み替えて行えばよい。

API キーは、同じ APIキーが有料の API を使用する際の課金などにも使われる事があるので、間違っても他人に公開しないようにご注意を。

短縮URL 出力加工の方法

Google API から戻された URL 短縮結果の出力加工は至って省力主義です。

URL Shortener API は以下の形式の出力を返してくるので、これをパイプで Perl に食わせて、「id」という記載ががある行があったらダブルクオート (\x22) で挟まれた文字を出力する、という処理をしています。

{
"kind": "urlshortener#url",
"id": "http://goo.gl/wNOy",
"longUrl": "http://www.yahoo.co.jp/"
}