rubygemのgooglereaderでフィードURLに引数的な何かが入っているために記事を引っ張れない件について
Google ReaderというRSSリーダーを提供するサービスが存在する。このRSSリーダーではサーバにGoogleがアクセスした個別のフィード情報(記事情報)を保存して、多くのユーザーに提供するというモデルを取っている。このため、今まで購読していなかったサイトのフィードを登録すると過去の記事のRSSまで確認することが出来たり、そのフィードをGoogle Reader内で何人が購読しているのかを知ったりできる。
このうち、「何人が購読しているのか」、「過去の記事はなんだったのか」という情報を得て活用したい場合、隠しAPIであるGoogle Reader APIを叩く事になる。隠しAPIなので仕様は公開されていないのだが、rubygemsのgooglereaderプラグインを利用すると簡単にアクセスすることが出来る。
url = "http://www.google.com/reader/atom/feed/http://example.com/feed%3Fq%3Drails" Google::Reader::Base.get_entries(url)
などのように、GoogleReaderAPIまとめサイトの情報を参考にして叩くのだが、上手くいかない。ブラウザからのアクセスは上手くいく。URLエンコードの問題だろうと予想する。隠しAPIだけあって他のAPI利用記事でも苦労している旨が伝えられている。
module Google class Base private def self.request(method, url, o={}) : url = URI.parse(url) #url = URI.parse(URI.escape(url)) : end end end
googlebaseの中にどうもuriエスケープを強制する部分があったので外す。これにて上手く取得できるようになった。
正直、誰得な記事なわけだが。