Hatena::ブログ(Diary)

by edvakf in hatena

2008-12-12

Google Reader APIの叩き方

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

すぐ忘れるのでメモ。

今回は curl で。curl は Mac 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 で自動で出来るんすかね。

tezukamtezukam 2008/12/13 11:22 RubyだとgooglereaderというGoogle Reader APIの薄いラッパーという感じのライブラリがあります。ただのラッパーなので大したことはできませんが、認証周りやトークンの保持などの面倒は見てくれます。
http://googlereader.rubyforge.org/

未読数の一覧取得はこんな感じになります。

require 'rubygems'
require 'google/reader'

Google::Reader::Base.establish_connection メールアドレス, パスワード
p Google::Reader::Count.all
# => [#<OpenStruct google_id=フィードのURL count=未読数>, ...]

edvakfedvakf 2008/12/13 15:54 ありがとうございます。こんなのがあったのですね。Rubyのパッケージ情報は検索しにくくて大変です。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証