はてなブログで購読してるブログをReederで読む方法

はてなブログで購読しておくと、毎朝更新内容をメールしてくれるけど、メールじゃなくてReederで読めるようにしたかったので、そのための仕組みを作ってみた。

 

 

処理の流れは以下のとおり。

 

  1. はてなブログで購読中のブログ一覧を取得する
  2. ブログのフィードをFeedlyに登録する

 

ReederはFeedlyに対応してるので、Feedlyにブログのフィードを登録しておくと、Reederで読めるようになる。crontabでFeedlyへの登録処理を回してやって、新しく購読したブログのフィードが自動的にFeedlyに登録されるようにすることで、購読したものがReederで読めるようになる。

 

はてなブログで購読中のブログ一覧を取得する

はてなブログは購読中のブログを取得するようなAPIを公開してないみたいなので、CasperJSを使ってスクレイピングした。CasperJSは綺麗に書けて良いと思う。

 

はてなブログで購読中のrssを取得する

 

ブログのフィードをFeedlyに登録する

FeedlyのPOST APIをサポートしてるライブラリがなかったのでライブラリを作った。

 

https://github.com/kmdsbng/feedly

 

まだ実装してないAPIがいっぱいあるけど、とりあえず認証してフィードを登録することはできる。

FeedlyAPIを使うには、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にフィードを登録するスクリプトはこんな感じ。

 

gist8158609

 

crontabから、これらをパイプでつないだ 処理を実行する。

 

0 * * * * cd $HOME/work/register_feedly; casperjs get_hatena_blog_subscribe_list.coffee | ruby register_to_feedly.rb

 

 これで、はてなブログで購読したら自動でFeedlyに登録されるようになります。

f:id:kmdsbng:20131228210707p:plain

 

 登録されてますね。