はてなブログで購読してるブログをReederで読む方法
はてなブログで購読しておくと、毎朝更新内容をメールしてくれるけど、メールじゃなくてReederで読めるようにしたかったので、そのための仕組みを作ってみた。
処理の流れは以下のとおり。
ReederはFeedlyに対応してるので、Feedlyにブログのフィードを登録しておくと、Reederで読めるようになる。crontabでFeedlyへの登録処理を回してやって、新しく購読したブログのフィードが自動的にFeedlyに登録されるようにすることで、購読したものがReederで読めるようになる。
はてなブログで購読中のブログ一覧を取得する
はてなブログは購読中のブログを取得するようなAPIを公開してないみたいなので、CasperJSを使ってスクレイピングした。CasperJSは綺麗に書けて良いと思う。
ブログのフィードをFeedlyに登録する
FeedlyのPOST APIをサポートしてるライブラリがなかったのでライブラリを作った。
https://github.com/kmdsbng/feedly
まだ実装してないAPIがいっぱいあるけど、とりあえず認証してフィードを登録することはできる。
FeedlyのAPIを使うには、FeedlyのAccess Tokenを入手しないといけない。
Access Tokenを入手するための認証プログラムをサンプルに含めた。
https://github.com/kmdsbng/feedly/blob/master/sample/get_token.rb
実行して指示に従うと、Access Tokenを入手できる。以下の様なかんじ。
% ruby get_token.rb 1. Access this url. Then redirect https://cloud.feedly.com/feedly.html?code=???&status= . https://accounts.google.com/o/oauth2/auth?response_type=code&client_id=5348905598... # このURLにアクセスすると、googleのログインページに飛んで、最後にcloud.feedly.comに飛ばされる。そのクエリパラメータにcodeがセットされてる 2. Please input code > AQAAO7N7InAiOjE... # 1. で入手したcodeを入力する OK. success to get tokens access_token: AQAAUkN7I... # Access Tokenが表示される
Feedlyにフィードを登録するスクリプトはこんな感じ。
crontabから、これらをパイプでつないだ 処理を実行する。
0 * * * * cd $HOME/work/register_feedly; casperjs get_hatena_blog_subscribe_list.coffee | ruby register_to_feedly.rb
これで、はてなブログで購読したら自動でFeedlyに登録されるようになります。
登録されてますね。