したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |

phaがときどき見るかもしれないスレ

18名無しさん:2010/11/28(日) 13:05:53
>>17
replyの後にpostRandomを実行するとIncorrect signatureになる現象と、in_reply_to_status_idに何らかの値をセットすれば回避できることを、私も確認しました。

$eb->setUpdate(array('status'=>'@hoge テスト1 '.date('H:i:s'),'in_reply_to_status_id'=>'8662591832334336'));
$eb->setUpdate(array('status'=>'テスト2 '.date('H:i:s')));
$eb->setUpdate(array('status'=>'@hoge テスト3 '.date('H:i:s'),'in_reply_to_status_id'=>'8496683960766464'));
$eb->setUpdate(array('status'=>'テスト4 '.date('H:i:s'),'in_reply_to_status_id'=>''));

どうもこれはPEARライブラリに問題があるようです。
PEAR\HTTP\OAuth\Consumer.phpのsendRequest関数内でvar_dump($req);したところ、
上記ソースのテスト2をPOSTしたとき、object(Net_URL2)の変数postParamsにテスト1のin_reply_to_status_idが残っていました。パラメータをセットはしても、クリアはしていないようです。

["postParams:protected"]=>
array(2) {
["status"]=>
string(19) "テスト2 12:28:44"
["in_reply_to_status_id"]=>
string(16) "8662591832334336"
}

テスト4をポストした際も、パラメータにin_reply_to_status_idの項目は残っていましたが、値に空をセットしたので、計算には影響が無かったものと推測されます。

["postParams:protected"]=>
array(2) {
["status"]=>
string(19) "テスト4 12:28:46"
["in_reply_to_status_id"]=>
string(0) ""
}


これ以上深く追っていませんが、これが原因でシグネチャの計算が正しく行われていない可能性が高い気がします。

だとすると、PEARライブラリに修正が加わらない限り、他の処理でも同じような条件で、Incorrect signatureが発生することも考えられます。(ただし、変数名postParamsが示すように、メソッドPOSTの場合のみ発生する現象で、GETのもの場合は影響を受けないようです。だから取得系APIは問題なく動くのではないかと・・・)

もし、どうしても原因不明のIncorrect signatureには、過去に指定したことのあるパラメータを全てに空白をセットするという方法を試してみると、良いのかもしれません。


新着レスの表示


名前: E-mail(省略可)

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

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

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

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