matsukaz's blog

Agile, node.js, ruby, AWS, cocos2d-xなどなどいろいろやってます

Twitterのお気に入りを自動投稿してみた

Twitterのつぶやきをブログに自動投稿するサービスはあるけど、お気に入りを投稿するサービスはどこにもなかったので作ってみた。利用したのは

といったところです。流れは、

  1. GAE/J上のcronで毎日0時に起動
  2. Twitter4jでお気に入りを抽出
  3. 過去に投稿してないものをAtomPubを利用してはてなに投稿
  4. 投稿したTwitterIdをGAE上で保持(二重投稿回避)

GAE/JでAtomPubを使うやり方は、[id:miztaka:20091025]を参考にさせて頂きました。ありがとうございました!
このやり方で実現した理由は以下の通りです。

  • なんでつぶやき自動投稿にしなかったか
    • 普段のつぶやきをブログに載せてもなぁと。有益な情報だけお気に入り登録してブログで紹介する方がいいとの判断。
  • Twitter4jを使った理由
    • 特になし。楽だから。お気に入りはRSSで配信されてるから、そっちから持ってくるのも手だったけど。
  • はてなのメールで投稿機能を利用しなかった理由
    • [id:ultravisitor:20090115]にある通り、メールで投稿機能は長い文章を送ると間に改行が入っちゃうため、AtomPubで意図した通りの投稿がしたかった。
  • 二重投稿の回避
    • お気に入りの取得は、お気に入り登録した順番じゃなくて、元のつぶやきの投稿日時順。なので、取得した順に投稿すると同じつぶやきを投稿しちゃう可能性が。GAE上では過去に投稿したTwitterIdを保持しておいて、過去に投稿してたらスキップするような処理を加えて二重投稿を回避。あと多すぎるとまずいので、お気に入りは 80 件取得して、そのうち未投稿のものをMAX 20 件投稿する仕様にしました。

そんなわけで、あとはほっといてもブログに投稿されます。邪魔っぽければすぐ消すかも。