Java, Twitter

Twitter botフレームワーク Kagechiyoをアップデート

TwitterのAPI整理で便利なUserStreamが使えなくなります。

UserStreamはツイートやDM、メンションなどをリアルタイムに通知してくれるAPIなので、ボットの開発に大変便利です。

UserStreamがなくなった後、ボットをどうやって作れば良いのかというと、Webフックを読んで貰うAccount Activity APIを使うか、REST APIをポーリングすることになります。

Webサーバを呼ばなくて良い後者の実装はこれから増えてくると思うのですが、都度都度ポーリングの実装をするのは面倒です。

以前から公開していたボットフレームワークであるKagechiyoをアップデートして、UserStreamに依存しないようにしました。
メンションを受け取った時、DMを受け取った時の処理だけを書けば良いので手軽です。
たとえばhelpというメンションを受け取った時に「ググレカス」と返すのであれば以下の1行だけです。
new twitter4j.Kagechiyo().onMention("help", (mention, twitter) -> twitter.reply("ググレカス")).start();

“help”はもちろんコマンド、その後に続くBiConsumerのラムダ式では受け取ったメンションと、例外を握りつぶす(ラムダ式内で扱い易い)お手軽Twitterインスタンスを受け取れます。
Kagechiyoのコードは大変短いので、サクっとパクってご活用ください。

Kagechiyoを発表した4年前のスライドはこちら