我目前正在为qml环境开发一个使用javascript和OAuth的twitter应用程序。 我陷入“request_token”端点,我不明白为什么。 当我发送请求时,我只得到“未能验证oauth签名或令牌”! 我已经使用http://oauth.googlecode.com/svn/code/javascript/example/signature.html和http://quonos.nl/oauthTester/检查了我的签名生成,看来我的签名和基本字符串都是正确的! 我试图在“授权”http头字段和正文中发送数据。 这是我的基本字符串:
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_method = HMAC-SHA1&安培; oauth_timestamp = 1303130860&安培; oauth_nonce = UX2kEA&安培; oauth_signature = LizFO9xkre2Kv5A43Oj%2F%2FaY9Wck%3D
如果有人可以帮我解决这个问题...我已经使用OAuth库示例和网络上的其他工具检查了每一步。
答案 0 :(得分:0)
绝对查看类似问题的答案。它可能包含您的解决方案: Twitter OAuth, Error when trying to POST direct message
答案 1 :(得分:0)
因此,Twitter的oauth实现似乎不需要oauth_token来签署基本字符串(如Twitter的API文档中所述)。此外,你不应该在你的basetring中写它。
授权标题字段应以这种方式填写:
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"
对于桌面应用程序,可以将meaatory oauth_callback设置为“oob”。