2016-07-02 14 views
0

2日間私はTwitterには一切の要求はしませんでしたが(私はそれを使用する必要があります)、私は間違っていることの残りから良いフィードバックを得ていません。Twitter Authorization

これが私の要求です:

HttpResponse request = Unirest.post("https://api.twitter.com/1.1/account/settings.json") 
      .header("Authorization", 
        "oauth_consumer_key=\"XXX\"," + 
          "oauth_token=\"XXX\"," + 
          "oauth_signature=\"XXX\"" + 
          "oauth_nonce=\"XXX\"," + 
          "oauth_signature_method=\"HMAC-SHA1\"," + 
          "oauth_timestamp=\"1467448738\"," + 
          "oauth_version=\"1.0\"," 
      ) 
      .header("Content-Type", "application/json") 
      .header("accept", "application/json") 
      .header("X-Target-URI", "https://api.twitter.com") 
      .header("Host", "api.twitter.com") 
      .header("Connection", "Keep-Alive").asJson(); 

そして、私はそれがhttpsを行うのは簡単だ。このページでは

{"errors":[{"code":215,"message":"Bad Authentication data."}]} 

を取得しています:// apigee.com/console/twitterが、私は を見ますoauth_timestamp、oauth_nonce、oauth_signatureは毎回ランダムに生成されます。 (私は何とかそれらを生成する必要がありますか?)

にhttp:// quonos.nl/oauthTester/ - このサイトは私がOAuthの署名

そして、このHTTPSをチェックするために役立った:// dev.twitter.com/ OAuthの/ツール/署名ジェネレータ/ < +私のid>は私のために署名ベース文字列、Authorizationヘッダー、curlコマンド

を生成し、私はまた、HTTPSから鍵を持っている:// apps.twitter.com/app/ コンシューマーキー( APIキー) コンシューマーシークレット(APIシークレット) アクセストークン アクセストークンシークレット (およびアクセス読み取り、書き込み、およびディレクトリectメッセージ)

しかし、たびにエラーが発生します。

私のコードで何が間違っていますか?何か不足していますか?

ありがとうございます!

答えて

1

oauth_timestampはランダムに生成されません。現在の時刻です。例えば上記のあなたの例では、例えば、下記のヘルプページに記載され

Sat, 02 Jul 2016 08:38:58 GMT 

oauth_nonceがランダムである(http://www.onlineconversion.com/unix_time.htmと検証)であります"32バイトのランダムデータを符号化するbase64"。

oauth_signatureが

https://dev.twitter.com/oauth/overview/authorizing-requests https://dev.twitter.com/oauth/overview/creating-signatures

など秘密/クライアントは、トークン、時には体を投稿し、あなたの要求のパラメータに基づいて計算される。これは、署名要求

https://github.com/yschimke/oksocial/blob/master/src/main/java/com/baulsupp/oksocial/services/twitter/Signature.java

のためのいくつかのサンプルコードです