Google Reader APIの叩き方

叩き方というより叩く前段階の準備編だな。API 自体は ここ を参照。

すぐ忘れるのでメモ。

今回は curl で。curlMac OS X に標準装備なのだけど、初期状態では SSL が有効になっていないので、下の方法などで SSL を有効にしておく必要がある。

まず SID (Session ID) トークンというのを取得する。

curl -k https://www.google.com/accounts/ClientLogin -d Email=ユーザー名 -d Passwd=パスワード -d service=reader

そうすると、レスポンスがこんな感じで得られる。

SID=DQAAAGkAAADrLGLdO_-Vu4samY_4IMDF1G6QMN7ia0bzSFQ2MoE9qipNrほにゃらら
LSID=DQAAAGoAAAAwSXfVCjSaa2TO9e7KXRkJDHplgBB1R_frWtY0CnptsGxmほにゃらら
Auth=DQAAAGoAAAAwSXfVCjSaa2TO9e7KXRkJDHplgBB1R_frWtY0CnptsGxmほにゃらら

この SID というやつをコピーなりしておく。

次に T トークンというのを取得する。

curl -s http://www.google.com/reader/api/0/token --header "Cookie: SID=上で取得したSIDトークン"

レスポンスがこんな感じ。

xKe6LB4BAAA.IrjCxgJEYsg9rNVf0dd0awほにゃらら

これもコピーするなりしておく。

最後に、適当な Google Reader API を叩く。

例えばフィードの未読数一覧を取得するときはこう。

curl -s "http://www.google.com/reader/api/0/unread-count?all=true" --header "Cookie: SID=最初に取得したSIDトークン; T=次に取得したTトークン" | tidy -xml -indent -quiet

特定のフィードだけ翻訳して取得したりもできる。


似たような方法で Gmail の新着メールなんかも取れるかも。

Ruby なら Mechanize で自動で出来るんすかね。