如何使用Twitter使用OAuth获取request_token

Ami*_*mit 7 twitter oauth

我使用以下方法URI来从twitter请求令牌.

注意:此处新行仅用于显示目的.

http://twitter.com/oauth/request_token?
oauth_consumer_key=9cS99b2406CUpATOeggeA&
oauth_signature_method=HMAC-SHA1&
oauth_signature=3e18bafc4c4fd6b23f988bcd1a8c0ab2d65db784
oauth_timestamp=1267523137&
oauth_nonce=56e66e9f8bd28b320f86a16407f9911d&
oauth_version=1.0&
oauth_callback=http://playground.com
Run Code Online (Sandbox Code Playgroud)

但它给出错误"无法验证oauth签名和令牌".

我用于计算机签名的基本字符串如下:

GET&
http%3A%2F%2Ftwitter.com%2Foauth%2Frequest_token&
oauth_consumer_key%3D9cS99b2406CUpATOeggeA%26
oauth_signature_method%3DHMAC-SHA1%26
oauth_timestamp%3D1267523137%26
oauth_nonce%3D56e66e9f8bd28b320f86a16407f9911d%26
oauth_version%3D1.0%26
oauth_callback%3Dhttp%3A%2F%2Fplayground.com
Run Code Online (Sandbox Code Playgroud)


请纠正我在哪里弄错了.

Rya*_*ord 4

您的问题在于参数的顺序。基本字符串的参数需要按顺序排列。如果它们不按顺序排列,就会出现该错误。

所以你的基本字符串应该是这样的......

GET&
http%3A%2F%2Ftwitter.com%2Foauth%2Frequest_token&
oauth_consumer_key%3D9cS99b2406CUpATOeggeA%26
oauth_nonce%3D56e66e9f8bd28b320f86a16407f9911d%26
oauth_signature_method%3DHMAC-SHA1%26
oauth_timestamp%3D1267523137%26
oauth_version%3D1.0%26
oauth_callback%3Dhttp%3A%2F%2Fplayground.com
Run Code Online (Sandbox Code Playgroud)

请注意,您的“随机数”不在正确的位置。

另外,通常情况下,“signature”参数会附加到请求 URL 的末尾。

http://oauth.net/core/1.0a/#anchor46

附录A.5.1