EasyBotter - プログラミングができなくても作れるTwitter botの作り方
cronの設定をする
botを定期的に実行する仕組みを作る
えっと、ここからがちょっとややこしいところなんですよね。
一般的にはbotを動かすにはcron(クロン)という、プログラムなどを定期的に動かすためのサーバーの機能を使います。
ただ、レンタルサーバーではこのcronが使えない場合も多いです。そこでどうすればいいかをいろいろ説明します。
普通にcronを使う
自分でサーバーを立てている、借りているサーバーがcronに対応しているなどで、普通に無制限にcronが使える環境の人は特に問題ありません。cronを使って定期的に、設置したpost_random.php か post_rotation.php か reply_random.phpを実行してください。
限定されたcronが使える環境の場合
たとえばXREA plusというレンタルサーバーは年間2400円という安い価格だけどcronが使えます。ただ、cronに制限があって、多くても一時間に1回までの頻度でしか実行できません。一時間に一回何かをpostするだけのタイプのbotなら問題ないけど、もっと頻繁に動かしたい場合はちょっときついですね(XREA plusでは複数のcronを設定できるので、一時間に一回のcronを少しずつ時間をずらして何個も組み合わせて回数を増やすという手は使えますが)。
圧縮新聞bot(@asshuku)はこのやり方で動かしています。
WebCron.orgを使う
WebCron.orgはサーバーのcronが使えない場合に、同じような機能を提供してくれるウェブサービスです。
有料ですが、cron一回の実行あたり0.0001ユーロしかかかりません(フランスの会社なので単位はユーロです。クレジットカードなどで支払いができます)。これは一時間に一回実行するだけなら一ヶ月に10円くらいしかかからないという価格なので、まあそんなに高くないし、ありなんじゃないかと思います。
ただ、cronの実行間隔はもっとも短くても5分間隔までしかできないという制限があります。→毎分の実行に対応したようです。
エンドレス般若心経bot(@hrdaya)はこのやり方で動かしています。
Google App Engineのcronを使う
僕自身は試していないのですが、Google App Engineのcronを使えば、無料で1分間隔で安定したcronが使えるそうです。
「GAE cron」などのワードで検索すればやり方を書いたページが出てくると思います。
cron-job.orgを使う
cron-job.org | kostenlose cronjobs
【2010/01/07追記】最近cron-job.orgではアカウントが大量に削除されたり登録できなくなったりしたようです。日本からの登録が多かったため負荷に耐えきれなくなって日本からのアクセスを制限しだしたのでは、などと言われています。無料で使えるcronのウェブサービスです(2009年9月現在)。最大で2分に1回の実行までできます。全部ドイツ語ですが、cron タスクの設定 【 Cron-job.org の利用】 | ≡ Drupal Japan ≡の解説を見ながらやれば登録は難しくないと思います。
(ただ、動作が不安定でときどき動かないことがあるという話をときどき聞きます。特に2分間隔で動かしているとすぐに動作がオフになるとか、いろいろ不安定ぽいので個人的にはあまりお薦めしません)
その他、裏技的な何かを使う
その他、cronを使わずにプログラムを実行する裏技的なテクニックはなくもないです。 たとえば、要はそのファイルに定期的に誰かがアクセスしてくれればいいのだから、検索エンジンやフィードリーダーなどのクローラーがそのページにアクセスするのを待つなどの方法があります。
とかで調べたらいろいろ出て来ると思います。
ただこの方法の場合は、指定した時間にきっちりと実行することはできません。不確定で不安定な方法ではあります。
完全手動にする
なんか上のどれもがめんどくさいというような場合は、自分が気が向いたときに手動でブラウザを使って、設置したpost_random.php | post_rotation.php | reply_random.phpにアクセスして、適当にポストするような完全手動botでもいいんじゃないでしょうか。
自動的に実行する仕組みをセットできたら、botの制作は終了です。お疲れさまでした。
botを宣伝する
botを作ったら多くの人に見てもらえるようにTwiwiki::TwitterまとめWikiなどのまとめサイトで宣伝するといいと思います。Twitterのアニメ・ゲームなどのキャラクターbotまとめなどジャンルごとにページがあります。