「ver.2.0*よくある質問*PHPエラー」の編集履歴(バックアップ)一覧に戻る

ver.2.0*よくある質問*PHPエラー - (2011/09/08 (木) 02:50:04) のソース

まずはbot.php/setting.phpに書かれている説明と、[[EasyBotter公式サイト>http://pha22.net/twitterbot/]]、[[設定手順・エラー解決編>ver.2.0*設置手順*エラー解決編]]を熟読しよう。
&color(#ff0000){''wikiを見ても分からないところが出てきたら質問スレッドで質問しよう!''}
bot.phpやEasyBotter.phpを編集する上で、基本使いそうなPHP制御構造等は[[Twitter Bot関連リンク]]にお勧め解説サイトをリンクしています。
※wikiの編集が分からなくて、追加してほしい項目がある場合はページ下の「コメントを書く」から誰かに頼んで下さい。
#contents
*object(SimpleXMLElement)#10 (2) {~~エラーが出ます
**"Incorrect signature"エラー

 object(SimpleXMLElement)#10 (2) {
 ["request"]=>
 string(20) "/statuses/update.xml"
 ["error"]=>
 string(19) "Incorrect signature"
 }

というエラーが出る。

setting.phpに間違いは有りませんか?
OAuth認証コードが古いものだったりしませんか?
OAuth設定項目のアプリケーション設定がBrowserになっていませんか?Clientにして下さい。

他には data.txt なり指定されたテキストファイルの文字コードが shift-jis ではありませんか?
文字コードがおかしいと投稿時にエラーがでます。
指定するテキストファイルは全て UTF-8 に変換してください。

**"Status is a duplicate."エラー

 object(SimpleXMLElement)#10 (2) {
 ["request"]=>
 string(20) "/statuses/update.xml"
 ["error"]=>
 string(22) "Status is a duplicate."
 }

というエラーが出る。

「duplicate」つまり重複です。Twitterでは同じ発言を繰り返し投稿できません。少なくとも10ツイートはあける必要があります。
これはランダム投稿用データが少ない時に発生します。
また、bot.phpでpostRandom()が同時に動く時も発生する可能性があります。

*Fatal error:  Uncaught~~エラーが出ます

 Fatal error:  Uncaught <table border="1" cellspacing="0">
 <tr><td colspan="3" bgcolor="#aaaaaa" align="center"><b>Exception trace</b></td></tr>
 <tr><td align="center" bgcolor="#cccccc" width="20"><b>#</b></td><td align="center" bgcolor="#cccccc"><b>Function</b></td><td align="center" bgcolor="#cccccc"><b>Location</b></td></tr>
 <tr><td align="center">0</td><td>HTTP_OAuth_Consumer_Request->send()</td><td>フルパス/PEAR/HTTP/OAuth/Consumer.php:250</td></tr>
 <tr><td align="center">1</td><td>HTTP_OAuth_Consumer->sendRequest('https://twitter.&hellip;',  Array,  'POST')</td><td>フルパス/EasyBotter.php:517</td></tr>
 <tr><td align="center">2</td><td>EasyBotter->_setData('https://twitter.&hellip;',  Array)</td><td>フルパス/EasyBotter.php:528</td></tr>
 <tr><td align="center">3</td><td>EasyBotter->setUpdate(Array)</td><td>フルパス/EasyBotter.php:162</td></tr>
 <tr><td align="center">4</td><td>EasyBotter->re in フルパス/PEAR/HTTP/OAuth/Consumer/Request.php on line 214

Twitterサーバーと連繋がうまく行ってない時(重い時)よく出るエラーのようです。
ほかにも原因がある場合がありますが、よくわかっていません。

land.to鯖では反応するものがないと「*以内に受け取ったメッセージはありません」と表示はしますが、実際リプライを受け取って返そうとするとこのエラーが出ます。
curlが使えないことによるものだと思われます(ver1.42にOAuthをつけると、curlエラーが出て動かない。)
Windows環境にてopensslが有効になってないと発生しました。

*bot.phpを実行した時、ブラウザ側が文字化けする

例:"Status is a duplicate."エラーの時
>Twitter縺ク縺ョ謚慕ィソ縺ォ螟ア謨励@縺セ縺励◆縲
>繝ヲ繝シ繧カ繝シ蜷搾シ咫 id
>  object(SimpleXMLElement)#10 (2) {
>  ["error"]=>
>  string(22) "Status is a duplicate."
>  ["request"]=>
>  string(22) "/1/statuses/update.xml"
>}
//
//2byte文字がソース強調部分にうまく含まれません。@wikiの仕様だとは思いますが、誰か分かる人修正お願いします。
//
EasyBotter.php
rep.php
reply_pattern.php
setting.php
bot.php
data.txt
の文字コードがUTF-8で保存してあるか確認してください。
備考:配布されているデフォルトのソースファイルではUTF-8N(UTF-8のBOMなし)になっています。
目安箱バナー