5

このコードを使用しています/ APIへのリクエストの署名のテストに失敗する別のTwitteroAuthcURLアクセストークンリクエストをガイドしています。私はまだこれのステップ1を通過しようとしています

注:キーはランダムであり、本物ではありません:)

oauth_callbackなしでリクエストを行おうとすると、APIから有効な応答が返されます

https://api.twitter.com/oauth/request_token?oauth_consumer_key=nHb2kSQ2CD9MW1MdW5VeQ&oauth_nonce=1356902849&oauth_signature=MbvhwGiNPKQR0klUPx9fsmUtdJY%3D&oauth_signature_method

oauth_callback文字列を追加すると(ユーザーがリダイレクトで署名できるようにするために必須です!)、「oauth署名とトークンの検証に失敗しました」というメッセージが表示されます。

https://api.twitter.com/oauth/request_token?oauth_callback=http%3A%2F%2F127.0.0.1%2Ftest%2F&oauth_consumer_key=nHb2kSQ2CD9MW1MdW5VeQ&oauth3%

つまり、2つのURLに違いはなく、どちらも同じ実行を経て、署名方法を尊重します。それを修正する方法は?

はいhttp://127.0.0.1/test/、Twitterアプリの設定でコールバックURLとして追加しました。

ありがとうございました

4

3 に答える 3

1

Twitterアプリの設定でコールバックURLを設定していますか?

これを設定しないと、API が失敗する可能性があります。

ここからチェックしてください:

ここに画像の説明を入力

また、時刻が同期していることも確認してください (NTP サーバーを使用します)。参照: https://dev.twitter.com/discussions/1043

于 2012-12-30T21:51:56.887 に答える
0

問題を解決しました。問題は、リンクでわかるようにクエリ文字列メソッドまたはヘッダーを使用してコールバック URL が正しく送信されたにもかかわらず、ベース文字列から署名を作成するときに二重にエスケープされていたことです。これに関するドキュメントはかなり悪いので、他の oauth_* パラメータと同様にダブルエスケープするべきではないと思いました (別名、「&」をパーセンテージエンコードします)。

于 2012-12-31T15:14:52.310 に答える