2011年9月27日火曜日

GoogleのURL短縮サービスgoo.glのAPIをPythonで利用する

このブログ記事をはてなブックマークに追加

しばらく前からgoo.glのAPI (Google URL Shortener API)が使えるようになっていたことは知っていたけど、実際に使ったことなかったので試しに使ってみた。import文を含めなければ3行で短縮URLの作成・復元の自動判別を行うことができた。条件演算子などを使えば1行にまとめられる。簡単。

ただし、正規表現は適当だし、エラー処理はしてないので、ちゃんと使う場合はその辺の処理を行う必要あり。あと、本格的に使うのであればAPIキーを取得すべき。また、Google APIs Client Library for Python使う方法もある。

http://handasse.blogspot.com/ を短縮URLに変換:

% googl.py http://handasse.blogspot.com/ http://goo.gl/RiIiD

http://goo.gl/RiIiD を元のURLに戻す:

% googl.py http://goo.gl/RiIiD http://handasse.blogspot.com/

googl.py

import sys,re from urllib2 import urlopen as U, Request as R from json import loads as J API,URL="https://www.googleapis.com/urlshortener/v1/url",sys.argv[1] if re.match('http://goo\.gl/.+',URL):print J(U(API+'?shortUrl=%s'%URL).read())['longUrl'] else:print J(U(R(API,'{"longUrl":"%s"}'%URL,{'Content-Type':'application/json'})).read())['id']

追記 (2015/3/26):

現在、API Keyを利用しないとエラーが返ってくるようなので、以下のように修正した。


コード中のYOUR_API_KEYの部分を実際のAPI Keyと差し替えれば利用できる。API Keyの取得するためには、まず、Google Developers Consoleにアクセスし、適当なプロジェクトに入り、APIと認証のAPIを選択し、Other popular APIsの中のURL Shortener APIを選ぶ。そこのページでEnable APIのボタンをクリックし、「APIコンソールでレポートを表示する」のリンクが表示されるので、そのページにアクセスする。メニューのAPI Accessを選び、そこのCreate new Browser key...ボタンをクリックする。これでAPI Keyが作成されるので、これを上述のYOUR_API_KEYと差し替えれば利用できるようになる。

続きを読む...