Replyするbotの構造

普通はプログラム等組む場合、仕様書を書いたりするのですが、Twitter botの場合、趣味の範疇なもので、イキナリ作っておりましたが、もし書いてみたらどんな感じかなという話。自己満足なので、適当に読み飛ばしていただけますと幸い。

最低限の機能を考えると…

0.準備処理:接続に必要な情報等々準備
1.Timeline取得:Twitter Timelineを取得する
2.返信対象があるか判断: なければ処理終了
3.返信準備:返信用のメッセージの準備
4.Status/update: Twitterで用意した返信メッセージでステータス更新
5.まだ返信処理を続行するなら2に戻る、なければ処理終了

あえてフローっぽく表現すれば下図のような感じ

実際は、返信対象の条件とか、返信用メッセージ造りの条件とかで細かく分岐していく訳で

例えば、1のTimelineの取得にしても、そもそもどのメソッドを使うか〜というところから色々既に枝分かれ。
自分宛の返信と言う意味では、 statuses/mentions 拾えばよいし、Timelineから色々拾いたければ statuses/home_timeline
また、取得範囲も、デフォルトで行けば最近20行ですが、もし過去どこまで処理済かというデータを保持できていれば、since_idパラメータを使っても良いですし*1

*1:ただし、since_idを使っても最大最近20発言分しか取得できませんでした。