2017-06-28 18 views
1

TwitterのREST APIに検索リクエストをしようとしています。Twitter APIが私にコード32(authencateできませんでした)エラーを出すのはなぜですか?

GET /1.1/users/search.json?q=%23PLLFinale HTTP/1.1 ホスト::api.twitter.com のUser-Agent:PostPirate v1.0を が受け入れ: はここに私の要求である/ コンテンツタイプ:application/x-www-form-urlencodedで 許可:OAuthのoauth_consumer_key = "(削除)"、oauth_nonce = "Ts3s7nlxSN6lfK9eqJOoujc8U3FmywOU"、oauth_signature = "(部分的に除去)lmMzY4YzgwY2JhMzFlYTc4ZDEwNTMyYWM1MGU1MmYxMQの%の3D%3D"、oauth_signature_method = "HMAC-SHA1"、oauth_timestamp = "1498607144"、oauth_token = "(削除)"、oauth_version = "1.0"

、ここで私の署名のためのパラメータ文字列である:

oauth_consumer_key =(除去)& oauth_nonce = Ts3s7nlxSN6lfK9eqJOoujc8U3FmywOU & oauth_signature_method = HMAC-SHA1 & oauth_timestamp = 1498607144 & oauth_token =(除去)& oauth_version = 1.0 & Q =%23PLLFinale

、ここで署名鍵である:

(除去)&(除去)

、ここでは、署名ベース文字列である:

GET & HTTPS%3A%2F%2Fapi.twitter.com%2F1.1%2Fusers %2Fsearch.json & oauth_consumer_key%3D(削除)%26oauth_nonce%3DTs3s7nlxSN6lfK9eqJOoujc8U3FmywOU%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1498617068%26oauth_token%3D(削除)%26oauth_version%3D1.0%26Q%の立体%2523PLLFinale

:ここ は、私は戻って受けてる応答である{ "エラー":[{ "コード":32、 "メッセージ": "あなたを認証できませんでした。"}]}

答えて

0

署名を間違って計算していました。私は自分のHMAC-SHA1計算の結果が一連の16進バイトであることに気付かなかった。私はそれらを文字列として扱い、直接base64変換関数に渡しました。 私はまた、あなたの署名のベース文字列をチェックするためにこれを使用することをお勧め: http://quonos.nl/oauthTester/

0

私の場合はcountパラメータは、TwitterのAPIが最近変更されたの最大許容されるカウント数を超えました。だから、新しい右のAPIコールのURLは私の場合には次のようになります。

https://api.twitter.com/1.1/statuses/user_timeline.json?count=100 

しかし、最も厄介な事は、私が代わりに論理の

{"errors":[{"code":32,"message":"Could not authenticate you."}]} 

を得ていたということでしたFacebookのAPIと同じように「リミットPARAM超えて」 。

これは、の誤解を招くようなエラーとなり、まったく異なるものになります。

関連する問題