botもろもろ(javaのソースとかcron.xmlについて)

オフにかまけてダラッダラしていたら、
検索ワードが F1<ベリーちゃんおよびtwitter bot系になってたおいらです。
神々がソース配布してくれてるおかげですぐbot作れるようになった世の中ですが、みんなcronで躓くらしく、私が参考にさせてもらったblogの方はあまりに質問がきまくるので記事を非公開にしたりされているようです…
このブログに載せてるメールにもぼちぼち来てるんですが、元から私のブログ来て下さってる方ではもちろんないらしく、ggrksの一言とともに手が滑るような人間だってことをご存じないまま質問メール書いてくれたんだろうなーと思ったのでつらーっとここで手順を書いてみますです。

1.botをweb上に設置する
2.google app engineにアカウントを登録 ※携帯電話のメールアドレスにつき1つまで。
3.EclipseにGAE用のプラグインを入れる
4.1で設置したbotを呼ぶプログラムを書く
5.cron.xmlを書く
6.EclipseからGAEにデプロイ

4.ですけど、私は他の方のソース参考にさせてもらったのでここにソース張ったりとかはちょっと自重したいと思います。要は

BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()));
while ((line = reader.readLine()) != null) {
resp.getWriter().println(line);
}

これができればおkですお!

5.は自分で試していけてるので載せておきます。

<cronentries>
<cron>
<url>/randompost</url>
<description>every day 10:17</description>
<schedule>every day 10:17</schedule>
<timezone>Asia/Tokyo</timezone>
</cron>
<cron>
<url>/randompost</url>
<description>every day 12:30</description>
<schedule>every day 12:30</schedule>
<timezone>Asia/Tokyo</timezone>
</cron>
<cron>
<url>/minutejob</url>
<description>every 2 min</description>
<schedule>every 2 minutes</schedule>
<timezone>Asia/Tokyo</timezone>
</cron>
</cronentries>

every * hoursのほかに、一日に3回時間を決めて実行したいときなどはその数だけcron.xml内に書きます。なので定期ポストもランダムリプライ(2分毎に実行)も1つにまとめることができます。他からコピーしたときなどは、web.xmlを直すのも忘れずに。

1つのアカウントで10個までアプリケーションを登録できます。転送量によっては無料分をオーバーしてしまうので、課金の登録をしていない場合は超過した時点から翌日まで動きません。

このぐらいかなー。

この手順でつくったbotですー。

http://twitter.com/amnosbot

Be the first to like.