私は自分のOAuthライブラリとラッパークラスをPHPで書くのは間違いです。 TwitterのOAuth実装ではすべてがうまく機能しますが、TumblrとFlickrのaccess_tokenステップには署名できません。OAuthアクセストークンを取得する(言語特有ではない) - FlickrとTumblrは同じですが、Twitterは同じではありません
このステップの違いは、oauth_tokenとoauth_verifierパラメータがあることです。私はAuthorizationヘッダーを使用していますが、私が考えることができる唯一の問題は文字エンコーディングの問題がいくつかあることですが、わかりません。 (わかりやすくするために壊れた)
ベース文字列:
POST&
http%3A%2F%2Fwww.flickr.com%2Fservices%2Foauth%2Faccess_token&
oauth_consumer_key%3Deeedfcd4c46a2c12080f58eb90a974d8
%26oauth_nonce%3D322190b47ca680d053338724ad1cc56d35d3e7b5
%26oauth_signature_method%3DHMAC-SHA1
%26oauth_timestamp%3D1322981994
%26oauth_token%3D72157628270097303-18aa378b4ab02af3
%26oauth_verifier%3Dec7811503fdd4380
%26oauth_version%3D1.0
これは、署名が問題であると信じて私をリードしている、(彼らはエラーレスポンスでそう教えて)のFlickrが期待する正確に何です。
Authorizationヘッダ(もわかりやすくするために壊れた):
Authorization: OAuth
oauth_consumer_key="eeedfcd4c46a2c12080f58eb90a974d8",
oauth_nonce="322190b47ca680d053338724ad1cc56d35d3e7b5",
oauth_signature_method="HMAC-SHA1",
oauth_timestamp="1322981994",
oauth_token="72157628270097303-18aa378b4ab02af3",
oauth_verifier="ec7811503fdd4380",
oauth_version="1.0",
oauth_signature="LYJtgHetQWNKX3rtQlSs643FdWY%3D"
やFlickrの応答:
oauth_problem=signature_invalid&
debug_sbs=POST&
http%3A%2F%2Fwww.flickr.com%2Fservices%2Foauth%2Faccess_token&
oauth_consumer_key%3Deeedfcd4c46a2c12080f58eb90a974d8
%26oauth_nonce%3D322190b47ca680d053338724ad1cc56d35d3e7b5
%26oauth_signature_method%3DHMAC-SHA1
%26oauth_timestamp%3D1322981994
%26oauth_token%3D72157628270097303-18aa378b4ab02af3
%26oauth_verifier%3Dec7811503fdd4380
%26oauth_version%3D1.0
何のGETやPOSTのパラメータがありません。すべて私はここから見たものから正しくエスケープされているようです。署名はrequest_tokenステップ(およびANY要求の場合はTwitter)で機能します。私は自分のサーバークロックが2分の1以内にあることを確認しました。私は明白な何かを欠いていますかこれを診断するにはどうしたらいいですか?
どのような問題が発生しているのですか?エラーですか? –
ハハ。私はエラーを忘れてしまったという私のすべての情報を与えることに集中しました。申し訳ありません、1秒! – landons