したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |
レス数が900を超えています。1000を超えると投稿できなくなるよ。

TwitterBotPHP質問スレ

531名無しさん:2010/10/26(火) 23:09:45
>>530
>>525です。
なぜアイコン変更の改造を挙げたかというと、「Incorrect signature」が出たり出なかったりするのは、「認証情報またはヘッダーを処理の途中で書き換えている」可能性が高いからです。

他の改造は認証情報やリクエストヘッダーを変更することは無いので、一度認証が成功していれば、ツイッター本体の不調でも無い限り、1ターンの間に認証出来たり失敗したりという現象はほぼ発生しません。

ところがアイコン変更など、ファイルのアップロードを伴う処理は、リクエストヘッダー(content-type)を通常oAuthが使用するapplication/x-www-form-urlencodedからmultipart/form-dataに書き換えるので、content-typeをapplication/x-www-form-urlencodedに戻さなければ、その後のPOSTで、「Incorrect signature」が確実に出ます。

お書きになっていた現象がそれに似ていたので、お伺いした次第です。

もしホスティング提供のPEARライブラリではなく、自分のサイトに置いてあるPEARを使用しているようなら、
easybotter同梱のPEARとDFなどのツールでコンペアしてみてはいかがでしょう。
もしかしたら、どこかに差異があるかもしれません。

また、どのリクエスト(またはどのリクエストの後)に「Incorrect signature」が返って来ているかを特定するために
_setData関数と_getData関数のreturn $response;の直前に
var_dump($url);
var_dump($value);
var_dump($response);
を入れて、しばらくログを取ることをお勧めします。

ログの取り方→ http://twbot.blogspot.com/2010/08/easybotter2.html

ちなみに、TLが取得出来ているかいないかはreplyTimeline関数の
$timeline = $this->getFriendsTimeline();
$timeline = $this->getRecentTweets($timeline, $cron);
$timeline = $this->selectTweets($timeline);
$timeline = $this->removeRepliedTweets($timeline);
の全行間に
var_dump(count($timeline));
をいれれば、最初に何件取得して、どの処理で削られて、最終的に何件残ったかがわかります。
更に、
$timeline = array_reverse($timeline);
の後に
var_dump($timeline);
と書けば、残ったTL(処理対象)が全件表示されるので、
これも一日二日ログを残せば、TL取得できているかいないかがはっきりします。


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板