bit.ly API for Python
コンバンハコンバンハ。
Twitter絡みのWEBサービスを作ろうとすると、140文字制限は避けて通れません。URLが見えなかったりと、セキュリティー上云々言う人もいますがURL短縮サービスを使うのは必須かもしれません。
と前置きはさておき、bit.lyをAPI経由で利用します。
非常に簡単です。
後ほど最新版のAPIに書き換えます。
こんな感じ。
# -*- coding: utf-8 -*- # url_short.py import urllib2 import simplejson # google app engine の場合は from django.utils import simplejson # configuration BitlyUser = "user" BitlyAPIKey = "api_key" class UrlShort: def __init__(self, api_user=BitlyUser, api_key=BitlyAPIKey): self.api_uri = "http://api.bit.ly/v3/shorten?format=json&longUrl=%s&login=%s&apiKey=%s" self.api_user = api_user self.api_key = api_key def get(self, long_url): open_uri = urllib2.urlopen(self.api_uri % (long_url, self.api_user, self.api_key)) short_url_json = simplejson.load(open_uri) return short_url_json
使い方はこんな感じ
>>> from url_short import * >>> u = UrlShort() >>> u.get("http://google.co.jp/") {'errorCode': 0, 'errorMessage': '', 'results': {'http://google.co.jp/': {'userHash': '*****', 'shortKeywordUrl': '', 'hash': '****', 'shortCNAMEUrl': 'http://bit.ly/aSzTx7', 'shortUrl': 'http://bit.ly/aSzTx7'}}, 'statusCode': 'OK'} >>> u.get("http://d.hatena.ne.jp/ue10000/20100924") {'errorCode': 0, 'errorMessage': '', 'results': {'http://d.hatena.ne.jp/ue10000/20100924': {'userHash': '*****', 'shortKeywordUrl': '', 'hash': '*****', 'shortCNAMEUrl': 'http://bit.ly/cIq77k', 'shortUrl': 'http://bit.ly/cIq77k'}}, 'statusCode': 'OK'}
jsonで返ってきます。
bitlyのAPIドキュメントを見るといろいろできそうですねー。