bot作りでのトラブルシューティング
主に自分用。他にも原因はあると思いますが、私が引っかかったところをメモっておきます。
いじったらテストする!いじったらテストする!とても大事な事なので2度言いました。
エラーが出る
プログラムのURLを直接ブラウザで開いた時にエラーが出たら
- {}の閉じ忘れ
- array();のセミコロン(;)を忘れている
- if、elseif、elseを正しく入れていない
- $keyword(ユーザー定義関数)が間違っている
- ".$keyword."の形式が間違っている
- $keyword(ユーザ定義関数)は「".」「."」で囲わないといけないので、例えば台詞本体を代入する時には「".$post;」と書いた方がよいっぽい。
- includeなどで呼び出すURLが絶対パスではなく相対パス
- 私の環境では呼び出せなくてエラー起こすことが多かったです
補足:
構文エラーの場合は「Parse error: syntax error, unexpected ほにゃらら in ***.php on line xxx」と出ます。これは「***.phpのxxx行目にあるはずのないほにゃららがあります」という意味。ほにゃららの一覧はこちら。→PHP: パーサトークンの一覧 - Manual
ほとんどが{}かelseの入れ忘れです。
ポストしない
特にエラーは出てないのにbotがポストしない時は
- cronに登録したURLが間違っている
- 呼び出すプログラムが重すぎてがタイムアウトした
- cronが止まっている
- 直接プログラムのURLを叩くと動くのに…という場合はcronが怪しいです
- 直前10個以内に全く同じポストをしている
- 「@XXX おはよう」と「おはよう」は重複扱いになりません
重複リプライする
- リプライのログファイルのパスが間違っているか、パーミッションを設定し忘れているか、アップロードし忘れている
空リプライする(@XXXしかポストしない)
- ユーザー定義関数(いわゆる反応キーワード)が一致していない