英語アカウントのつぶやきを日本語に翻訳してTwitterに投稿するスクリプト

そろそろ国際人になろうということで、英語ブログとTwitterの英語アカウントを準備してます。よろしく。

で、perlの練習ついでに英語アカウントでのつぶやきを翻訳API使って日本語にして日本語アカウントにつぶやくスクリプトを試作してみました。こんな感じでreplyとしてつぶやいてくれます。

自分のつぶやき取得はAnyEvent::Twitter::Streamで

stream apiを使って取得してます。filterメソッドでfollowに自分の英語アカウントのuser_idを指定。これだと多分update以外も流れてくるので、適当にreturnして逃げてます。

翻訳APIはBing APIで

Google翻訳APIは従量課金制になってたので、ふらふら探してBingのやつを使ってみました。ちなみに、translate.google.co.jpのAJAXリクエストでUA設定すれば叩けないことは無いみたいですが仕様変更とかだるいのでやめた方がいいでしょう。

上の記事っぽい感じで適当に登録して、AppIdを取得したらおk。

http://api.microsofttranslator.com/V2/Ajax.svc/Translate?appId=AppID&from=en&to=ja&text=Hello

-> "こんにちは"

みたいに簡単に使えます。

投稿はAnyEvent::Twitterで

これも簡単にpostで終了。ちょっと工夫として、翻訳したやつの元がなんだったのか分かりやすくするために、in_reply_to_status_idを指定しています。ただし、この場合元の投稿者への@usernameというのがつぶやきに入ってないと無視されるので追加しています。

できあがり

これらをちょっとずつ使って試していって、適当にがっちゃんこしてできあがり。メインスクリプトはこんな感じ。configはconfig_sample.plをコピーして頑張ってtokenとか設定してあげて下さい。

久々にこういうのやって楽しかった。

英語でもブログ書いてみた。