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

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

Rubyを使ってGoogle Readerの情報を取得する

最近見つけた普通のサラリーマンのiPhone日記さんの情報を参考にしてiPhoneでの情報チェックをより効果的に出来ないかと模索していて今の所

  • Byline or Newsstandで記事のチェック
  • 気になる記事があった場合にはBylineではスターを付けるとGoogleReader上のスターと連携できるのでPC上で後で確認する方法かNewsstandではInstapaper: Save interesting web pages for reading laterの連携機能を活用する

という感じの運用方法になりつつあったんだけど、日頃の移動手段が基本地下鉄の中でオフラインの状態が多いのでそうなるとBylineがメインになってくる

ここまでは結構完璧なんだけど、GoogleReaderのスターが付いた記事って何故か意外と見ないんだよね。。

まぁ些細な事なんだけど、スターが付いた記事をまとめて一気に開いて見たいけどそういう機能が無さそうで1つ1つチェックするのが面倒というだけなんだけど、とはいえ必ずしもPC上でチェックするとも限らないので

気になる記事があった場合にはBylineではスターを付ける
 ↓
スターが付いた記事を(どうにかして自動的に)Instapaper: Save interesting web pages for reading laterに送る
 ↓
iPhone中心にInstapaper: Save interesting web pages for reading later上でじっくり読む

という夢のような事を考えて、スターが付いた記事を抜き出してInstapaper: Save interesting web pages for reading laterに送るっていうのは自分で作れそうな感じもしてきたので、がんばって作ってみようかと思います。

まずはGoogleReaderの情報をうまいこと処理するやり方をちょっと調べたらRubyにgooglereaderというそのものずばりなものをGoogle Reader APIの叩き方 - by edvakf in hatenaで知ったのでまずは自分のMac上の環境を整えました。

$ sudo port -v selfupdate
$ sudo port install rb-rubygems
--->  Fetching rb-rubygems
--->  Attempting to fetch rubygems-1.3.4.tgz from http://distfiles.macports.org/ruby
--->  Verifying checksum(s) for rb-rubygems
--->  Extracting rb-rubygems

としてから、

sudo gem install googlereader
Building native extensions.  This could take a while...
Successfully installed googlebase-0.2.1
Successfully installed atom-0.3
Successfully installed json-1.1.7
Successfully installed googlereader-0.0.4
4 gems installed
Installing ri documentation for googlebase-0.2.1...
Installing ri documentation for atom-0.3...
Installing ri documentation for json-1.1.7...
Installing ri documentation for googlereader-0.0.4...
Installing RDoc documentation for googlebase-0.2.1...
Installing RDoc documentation for atom-0.3...
Installing RDoc documentation for json-1.1.7...
Installing RDoc documentation for googlereader-0.0.4...

とインストールが無事に完了したので念のため以下コマンドでローカルのパッケージの状態を確認したらきちんと表示されていた

$ gem list

*** LOCAL GEMS ***

atom (0.3)
googlebase (0.2.1)
googlereader (0.0.4)
json (1.1.7)

あとはRubyでこんな感じのソースを書いてとりあえずGoogleReaderから情報取得する手段はわかった

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