OAuthプロセスを通じてアクセストークンを取得できました。「OAuthで認証できませんでした」 POSTの試行時にTwitterから投稿
しかし、POSTを/statuses/update.jsonエンドポイントに実行しようとすると、「OAuthで認証できませんでした」というメッセージが表示されます。
私は消費者の秘密の認証から戻ってきたトークンで署名していますが、他に何ができるのか分かりません。
Twitterフォーラムも役に立たなかった。
ヒントをいただければ幸いです。
OAuthプロセスを通じてアクセストークンを取得できました。「OAuthで認証できませんでした」 POSTの試行時にTwitterから投稿
しかし、POSTを/statuses/update.jsonエンドポイントに実行しようとすると、「OAuthで認証できませんでした」というメッセージが表示されます。
私は消費者の秘密の認証から戻ってきたトークンで署名していますが、他に何ができるのか分かりません。
Twitterフォーラムも役に立たなかった。
ヒントをいただければ幸いです。
Twitterへの認証された呼び出しの作成は苦しいことがあります。
署名ベース文字列のパラメータがアルファベット順であることを確認してください。
この取る:、値を記入のBase64でそれをコード化し、このように一緒にそれを置く
oauth_consumer_key={consumerkey}&oauth_nonce={nonce}&oauth_signature_method=HMAC-SHA1&oauth_timestamp={timestamp}&oauth_token={token}&oauth_version=1.0&status={tweet text}
を:
POST&{base64 encoded url}&{base64 encoded base string}
これはあなたが(なしに署名する必要がある文字列になりますブラケット)。
(ここではURLはhttps://api.twitter.com/1.1/statuses/update.jsonあろう)署名鍵は、このように構築される必要がある:
{consumer secret}&{token secret}
署名は、その後、base64エンコードされHMACSHA1ハッシュです。
OAuth oauth_consumer_key="{consumer key}",oauth_nonce="{nonce}",oauth_signature="{signature}",oauth_signature_method="HMAC-SHA1",oauth_timestamp="{timestamp}",oauth_token="{token}",oauth_version="1.0"
そして最後に、あなたのリクエストでポストされたデータとしてstatus=your tweet text
を置く:
その後、Authorizationヘッダーでこれを配置する必要があります。
こちらがお役に立てば幸いです。
まず、あなたのキー(認証が必要なstatus/home_timelineのようなもの)でGETリクエストを試してみてください。それは動作しますか? – Shcheklein
サーバーの時計がTwitterや他のよく知られているタイムサーバーと同期していることを確認してください。 15分以上離れていると、Twitterは不正な署名をして失敗します。 –
私は正確に同じ問題(c/liboauth/maemo5)を経験していました - アクセストークン(画面名など)を取得するまですべてがうまく流れました - しかし、エラー... Eranのコメントを読んでいる私は、私が働いていたVMの時計が1時間であることに気づいた!そして今それは動作します:)そう、ありがとうございますEran - あなたのコメントは答え、+1する必要があります。 – fusi