40歳からのキャリアチェンジ

20代はエンジニア・PM、30代はWeb系エンジニア向けのキャリアアドバイザー。40代の今はフリーランスで開発含めて色々やってます。技術ネタとしてはRuby/RailsとJavaScript関連あたり

(仮)GR4Rubyの進捗状況

いまだにいいネーミングが思いつかないですが、(仮)GR4Rubyの進捗状況を。

作り始めて色々と知ったのですが、Google Readerの情報を取得するのに結構面倒な処理が多いです。

非公式なGoogleのAPIのドキュメントからちょっといくつか抜粋すると

SID : Session ID. SID is generated each time you login to Google (any service). The SID is valid until you logout.

というGoogleのサービスにログインしている間に必要となりそうなSession ID(以下SID)だったり、このSIDはサービスにログイン中は必要に応じて呼び出さなければいけないようなので、そのための仕組み等...と思ったよりは大変。

もともとこのツールを作ろうと思った時にgemsのgooglereaderでは、自分が欲しい情報(Starred)が取得出来なさそうな感じだけど、上記のGoogleのサービスにログインする部分っていう面倒そうな処理は全て引き受けてくれているように見えるのでだったらこのgooglereaderのソースをちょっと読んでいけば、何かヒントが得られそうと思って、もう少ししっかりとソース読む事にしました。

そしたら、googlereaderのパッケージ自体は、googlebaseというのを継承しつつ、GoogleReaderの情報取得するのに固有の処理のみを実装しているという冷静に考えれば当たり前な感じの仕様になっているように見えました。

なので、こんな感じで実行すればいいのかなぁと思って試しに書いたら、starredの結果がXML形式で返って来たように見えるのですが、ただそのXMLの情報を見ている限り微妙に欲しい情報と違うように見えるんだよなぁ...

require 'rubygems'
require 'google/reader'
Google::Reader::Base.establish_connection "xxxxx@gmail.com", "passwd"

p Google::Base.get('http://www.google.com/reader/view/user/-/state/com.google/starred')

Googleで公式なAPI公開してくれないかなぁー