今回から、いくつかのパターンのbotを実際にプログラムで実装します。今回はただひたすらつぶやくbotを作成してみます。
まずは時報bot
まずは、1時間に1回などの頻度で現在時刻をつぶやく時報botです。
このPHPプログラムをcronなどで定期的に実行すれば、時報botができあがります。どうでしょうか、案外簡単だと思いませんか?
上で挙げた時報botは日付部分がつぶやく時間によって変わる例ですが、たとえばつぶやく内容を複数パターン用意し、ランダムにつぶやくようにすれば名言botの出来上がりです。
不定期に小倉百人一首をつぶやくbot
次に示す例は、不定期に小倉百人一首をつぶやくbotです。
乱数を用いることで不定期につぶやくように実装しています。
このプログラムをcronを用いて10分間隔で実行すると、平均1時間に1回、不定期に発言するbotを実現できます。今回は分量の都合から5首だけ載せましたが、後述する二重投稿対策を考えて発言パターンはもっと増やしておくことをオススメします。
botを作成する上でのTIPS
ここではbotを作成する上でのいくつかのテクニックを紹介します。
二重投稿対策
とくに気をつけないといけないのは、二重投稿です。Twitterでは過去に行ったツイートとまったく同じ文面のツイートは、一定期間(具体的な期間は不明です)エラーになって発言できません。botは同じ発言を何度も行うことがあるため、工夫が必要です。
たとえば、現在時刻やランダムな数字をツイートに含めるのも有効ですが、会話/返答するbotであれば語彙を増やしたり、語尾に変化もたせるのをオススメします。そうすることでbotをキャラクターとしての個性が生まれ、深みも出ます。
その他、先ほどの百人一首であれば、小倉百人一首以外の和歌なども用意してバリエーションを持たせるのも手です。
エラー処理をしっかりやりましょう。
Twitterを毎日のように使っている方はご存知かもしれませんが、Twitterのサービスはよく止まります。止まるのはWebインターフェースだけでなく、APIも同様に止まる場合があります。早めのうちにエラー処理を実装してしまいましょう。
定期的につぶやくbotはどの程度の頻度つぶやくべきか?
あまりフォローしていない人のタイムラインの場合、botの発言で埋め尽くされてしまいます。botの特性にもよりますが、定期的につぶやくbotのの場合は、筆者の経験的には1時間から2時間おきにつぶやくぐらいが目安になると思います。
また、寝てる間にタイムラインがbotで埋まるのを避けるため、夜間はつぶやかないなども有効な手段です。
次回は、返答(mentions)を用いて会話をおこなうbotのサンプルを紹介する予定です。