我使用以下方法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)
请纠正我在哪里弄错了.
您的问题在于参数的顺序。基本字符串的参数需要按顺序排列。如果它们不按顺序排列,就会出现该错误。
所以你的基本字符串应该是这样的......
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
| 归档时间: |
|
| 查看次数: |
10697 次 |
| 最近记录: |