2011-04-18 92 views
3

我目前正在为qml环境开发针对twitter的应用程序,使用javascript和OAuth。 我被困在“request_token”端点,我不明白为什么。 当我发送我的请求时,我只会得到“未能验证oauth签名或令牌”! 我使用http://oauth.googlecode.com/svn/code/javascript/example/signature.htmlhttp://quonos.nl/oauthTester/检查了我的签名代,看起来我的签名和我的基础都是对的! 我试过在“授权”http头字段和正文中发送数据。 这是我即basestring:twitter oauth request_token失败

POST &的https%3A%2F%2Fapi.twitter.com%2Foauth%2Frequest_token & oauth_consumer_key%3D26oauth_nonce%3DDbWO0M%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1303129797%26oauth_token%3D% 26oauth_version%3D1.0

我在报头字段 “授权” 发送的部分是:

oauth_consumer_key = & oauth_signature_met HOD = HMAC-SHA1 & oauth_timestamp = 1303130860 & oauth_nonce = UX2kEA & oauth_signature = LizFO9xkre2Kv5A43Oj%2F%2FaY9Wck%3D

如果有人能帮助我这个问题......我已经检查通过OAuth库实例的每一步和网络上的其他工具。

回答

0

绝对检查出这个答案类似的问题。它可能包含您的解决方案: Twitter OAuth, Error when trying to POST direct message

+0

嗨!谢谢 ! 我试图改变我的url_encoded,它不会改变结果。我删除了我的代码并再次开始,我不再使用oauth。看来我的基础字符串和我的签名是正确的(希望http://quonos.nl/oauthTester/和http://oauth.googlecode.com/svn/code/javascript/example/signature.html),但是i'n仍然遇到同样的问题。也许这是关于我正在构建的字符串,我尝试另一种方式(仍在整合您的解决方案) – galettan 2011-04-19 14:51:01

0

因此,似乎Twitter的oauth实现不需要oauth_token来签署basestring(如在Twitter的API文档中所述)。此外,你不应该把它写在你的基础字符串中。

Authorization头字段应填写这样:

OAuth oauth_nonce="1Rek6K",oauth_callback="oob",oauth_signature_method="HMAC-SHA1",oauth_timestamp="1303375383",oauth_consumer_key="<YOUR_CONSUMER_KEY",oauth_signature="fgb6sPPR2PHQD%2BinG2KvtvgOtXU%3D",oauth_version="1.0" 

的mendatory oauth_callback被前人的精力设置为 “OOB” 桌面应用程序。