2010-03-02 210 views
7

我正在使用以下方法URI从twitter请求令牌。如何使用twitter与使用OAuth获取request_token

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

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 

但它给出错误“无法验证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 


请纠正我,我在哪里犯错。

+0

如果你与Twitter登入完成,请提供给我像github上或plunker – 2017-07-18 07:26:36

回答

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 

注意,你的“现时”是不是在正确的位置。

此外,通常,“签名”参数会附加到请求URL的末尾。

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

附录A.5.1

+0

我仍然得到同样的错误的地方你的工作例如“无法验证的OAuth签名和令牌” – Amit 2010-03-15 09:04:16

+0

我相信'oauth_callback'参数也应在正确的顺序。另外,当我的意思是正确的顺序时,这些需要按顺序创建签名。如果您仍然遇到问题,请编辑您的帖子并添加新的基本字符串,以便我们可以看到它的内容。 – 2010-03-15 12:06:02

+0

嗨..我可以知道,我怎么能得到oauth_signature?..谢谢 – pcs 2016-02-03 05:07:32

0

Eclipsed4utoo说什么 - 但如果你仍然得到错误,你应该检查是否已注册您的应用程序是基于浏览器(和指定的回调)在Twitter的开发管理页面。

如果它被列为桌面应用程序,但在调用中包含& oauth_callback,则会看到您提到的签名验证错误。

相关问题