TwitterのBot設置改造記録

http://twitter.maidsan.jp/
TwitterでBotを設置しました。
Botというのは自動更新や自動返答をしてくれるプログラムの事(ロボットプログラムの略称だと思う)で、Twitterへ自動的にプログラムで決められたつぶやき(Twitterへの投稿をツイートとかつぶやくと言います)をします。世の中にあるBotは多種多様ですが「プログラミングができなくても作れるTwitter botの作り方( http://pha22.net/twitterbot/……した。
まずは上記のサイトから最新版(この時は1.42)をダウンロードしてプログラムのスクリプトを手に入れました。同時にBotのためのTwitterのアカウントをとりました。自分の持っていたアカウントに適用しようかとも思ったんですが、今使っているアカウントはメモ帳がわりなのでカオスにならないようにしました。
ダウンロードしたスクリプトをテキストエディターで開いてアカウントとパスワードを入力。つぶやかせたい文章も適当に入力。
ファイルがいくつかあるなかで、自分がやりたいのがランダムツイートと定例文への返答だったのでサイトを見ながら編集しました。
で、自分の借りているサーバーにアップロードして、該当するプログラムのページにアクセスすると、Twitterのにつぶやかれました。規定の単語で話しかけ該当するプログラムページにアクセスすると、ちゃんと返答もしてくれました。
つぶやくプログラムは結構簡単に設置できたのですが、このままだと自動ではありません。必要に応じてプログラムサイトにアクセスしないとつぶやきも返答もしてくれません。
ここで必要なのが、CRONというサーバーの仕掛けだそうです。私が使っているロリポップというレンタルサーバーはCRONが使えないということが、いろいろと調べて判明。フリーで貸してくれるサーバーも見当たらず、お金を出して他のサーバーを借りるのもなぁ、と考えて、今回は手動で行くことにしました。
まずは、改造です。要するにプログラムのページが読み込まれれば動作するということで、返答をするプログラムのページを時間になったら自動的に再読み込みするようにしました。いろいろと試してみて、自分自身を読み込むと何故だかエラーが出るので自動投稿プログラムと自動返答プログラムを三分間隔でお互いに読み込ませるようにしました。
これでページを開いていれば六分に一回投稿してその合間に返答するようになりました。
ずっと投稿させるには常にこのページを閲覧していればいいのですが、電源を入れてブラウザでページを閲覧させるパソコンが事情があって用意出来ないため他の方法も併用することにしました。
BotスクリプトのページにGoogleの「CRON使えない」のリンクがあったので調べてみたところ、PHPスクリプトをイメージタグで呼び出して擬似CORN動作をさせる方法(「cronが使えないサーバでcronを使うPHPスクリプト( http://phpspot.org/blog/archiv……した。
このスクリプトをダウンロードして設置したのですが動作が芳しくありません。スクリプト内に設置方法が書いてるようなのですが、そもそもCRONを知らず、外国語も理解できなかったのでどう設置してよいのやら。スクリプトそのものをキーワードにして検索したところ、CRON設置と同じ仕組みらしいので更に方々を調べました。
擬似CORNスクリプトの設置に問題があるのか、設定に問題があるのかイマイチ不明。とりあえずスクリプトファイルを開いていろいろと試したところ、スクリプトのバグらしきものを発見し思ったように動作させる事に成功しました。
これをブログや自分のサイトに貼りまくりページが開かれる度にプログラムが動作するようにしました。
こうやって動作させると問題も出てきました。各ページが連続して読み込まれると読み込まれた回数だけ動作してしまうため短時間で沢山つぶやくうざいBotになってしまったのです。「プログラミングができなくても作れるTwitter botの作り方」のページに付属していた掲示板に改造の項目があったので該当するような改造を探してみました。
具体的なものが見つからなかったので、今後の要望のところに書き込んだところ、自分で改造してみては、というレスポンスをいただき改造してみることに。
幾つかトラブるがあったものの、20分以上たたないと次のつぶやきをしないように改造することが出来ました。
以前からよく使っているウェブ上でCSVを読み込み表示編集できるスクリプトを改造してツイートをウェブから編集できるようにしました。
スクリプトの改造の具体的な内容は次のページで

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Spam Protection by WP-SpamFree