pha::home

EasyBotter - プログラミングができなくても作れるTwitter botの作り方

PHPで作ったTwitter Botスクリプト「EasyBotter」を公開しています。

作成:@pha

+


よくある質問

スポンサード リンク

Twitter Bot BBSEasyBotter 非公式wikiもご参照ください。

準備編

Q.どこのサーバで動くの?geocitiesやLand.toは動くの?
→PHP(5以上)が使えるレンタルサーバーなら動作します
 land.toはEasyBotterは動作不可です。FileQはver.2なら設置可能です。

アップロード編

Q.アップロードってどうすればいいの?
→アップロードソフトのFFFTPやFileZillaを使ってアップロードしてください
 使い方は付属の説明書をご覧ください
Q.何をアップロードすればいいの?
→解凍したEasyBotter2.04beta.zipの中身全部です

編集編

Q.、Windows付属の「メモ帳」ではだめというのがよく分かりません。どうしてですか?
→Windows付属のメモ帳だと「文字コードのUTF-8、改行コードのLF」の情報が記録されません。
 「文字コードのUTF-8、改行コードのLF」の情報が記録されるアプリを使ってください
Q.data.txtってphpに出来るの?出来るならどうすればいいの?
→出来ます。他のphpファイルのreply_pattern.phpやsetting.phpを参考にしてみてください

手動編

Q.アップロードしたのにPOSTされない
→OAuth認証していますか?
 Access TokenとAccess Token Secretをsetting.phpに記述していますか
 if構文がダブってないか見る
 一旦サーバーに上げたものを削除して上げなおし、cronの設定もやりなおす
 サーバーを変えてみる
Q."Status is a duplicate."エラーが出る
→「duplicate」つまり重複です。Twitterでは同じ発言を繰り返し投稿できません。
  少なくとも10ツイートはあける必要があります。
Q.二重投稿するんだけど
→twitterが重いのでしばらく待つ
 とりあえずcronの間隔を長めにとってみる
 if構文がダブってないか見る
 一旦サーバーに上げたものを削除して上げなおし、cronの設定もやりなおす
 サーバーを変えてみる
Q.反応するワードなのに手動アクセスすると「2分以内に受け取った@はないようです」とでるんですけど
→何かファイルを更新させませんでしたか?してない場合はツイッター側の問題の可能性もあります
あと、ときどき取りこぼしはあるみたい
Q.via EasyBotter のEasyBotterという部分が変えられると聞きますがどうやって変えるのですか?
http://wolf.silk.to/labo/oauth.htmlを参照してください
Q.アップしたら真っ白になるだけ/文字化けしてる
→エンコードUTF-8(TeraPadはUTF-8N)BOMなし、改行コードはLFになってるか
 data.txtとreply_pattern.phpとlog.datのパーミッションが666になってるか(サーバーによって違う場合もあり)
 setting.phpで何か間違ってないか
Q.昨日まで正常に動いていたのにリプライ等動かなくなった
→何かファイルを更新させませんでしたか?してない場合はツイッター側の問題の可能性もあります
Q.bot.phpにアクセスするとHTTP 404"Not Found"って出るんですけど
→URLが間違っています、ちゃんとURLを確認してください
Q.reply_pattern.php内の反応単語に該当しなかった場合、返信させたくないので"data.txt"を外したのですが動きません。
例:$response = $eb->reply(2,"reply_pattern.php");
→勝手に記述を足さない
Q.reply_pattern.php内の反応単語に該当しなかった場合、reply_pattern2.phpをチェックさせたいのですが動きません。
例:$response = $eb->reply(2,"data.txt","reply_pattern2.php","reply_pattern.php");
→勝手に記述を足さない
Q.定期POSTする時に@付きやTLに反応すると通常POSTしないんですけど
→cron側やサーバ側のタイムアウトの可能性もあります
 タイムアウトだとエラーログに出ない場合もある

エラーが出たときは

ブラウザから実行しようとするとエラーが出る
・とりあえずIDとパスワードが間違ってないか確認してみる
・拡張子が「.php」のファイルを編集する際に、半角で書くべき""や =や;や,が全角になってないか確認する。また、全角スペースが紛れ込んでいないか確認する。 (エラーに表示されている行の前後に注意する)
botが発言しない
・とりあえずIDとパスワードが間違ってないか確認してみる
Twitter、重複つぶやきをブロック開始  現在Twitterでは、24時間以内に同じ発言があった場合、その発言を投稿できないようになっています。botの発言のパターンが少ないとこれにひっかかって発言できないことが多いかもしれないです
data.txtの中身が全部改行無しで出力される
原因調査中です。。。
リプライが2回返ってしまう
原因調査中です。。。
botがリプライを返さない
・プロテクトの相手からの@は、botがフォローするのを相手が許可しないとbotから見えないので、そのせいかもしれません
・相手の発言の中で、@bot_idとbotのidを呼んだ後で、半角スペースじゃなくて全角スペースが入っているとbotが反応しない場合があります。スペースは半角で!
・とりあえずIDとパスワードが間違ってないか確認してみる
Twitter、重複つぶやきをブロック開始  現在Twitterでは、24時間以内に同じ発言があった場合、その発言を投稿できないようになっています。botの発言のパターンが少ないとこれにひっかかって発言できないことが多いかもしれないです
ログの内容が改行なしで全部出てしまう
・FTPの転送をアスキーモードに指定して転送すると直るかもしれない(大抵自動的にアスキーモードになってるはずだけど)

どうしても直らない人はちょっとめんどいけど以下の方法を試してみてください。

 1.data.txtの発言の一行一行ごとの最後に,を付ける

 2.post_random.php, post_rotation.php, reply_random.phpの中にある
 $tw = explode("¥n", $tweets);
 という文を
 $tw = explode(",", $tweets);
 に変える

たぶんこれで直ると思います!

他いろいろ追加中。。。

スポンサード リンク