我正在 Qt Quick/QML 中实现 Twitter 帖子客户端,使用 Javascript 作为应用程序逻辑。
我已成功完成 oAuth 过程的第一步,并获得了 oAuth token 和 key 。
但是发送到 http://api.twitter.com/1/statuses/update.json
对我来说总是失败,返回 401 Unauthorized。
所有帖子都是使用 XMLHttpRequest
完成的,但还没有一个起作用。
我尝试在桌面 Java 程序中复制该场景(复制 Qt 应用程序中使用的相同授权 header 和帖子正文),但结果很奇怪。第一次对任何 Twitter 应用程序进行此尝试时,帖子成功了,我的推文也通过了。该 Twitter 应用程序的后续尝试均会收到 401 未经授权。
如果我随后在 Qt 应用程序中为不同的 Twitter 应用程序生成一个发布授权 header ,并在 Java 程序中尝试,它也只能运行一次。
有人知道这里出了什么问题吗?
另一件事表明我做错了其他事情,我需要将 =
附加到我生成的复合签名 key 中以对基本字符串进行签名(我正在使用 this JS SHA-1 implementation ) 。任何知道为什么会这样的想法也将不胜感激!
最佳答案
您是否为每个请求生成新的 OAuth header ,或者是否在每个请求上重复使用相同的 OAuth header ?
听起来您正在重复使用 header ,这肯定会生成 401 错误。每个请求都需要一个新生成的 OAuth header 。
关于javascript - Twitter 更新在 QML 中运行时返回 401 Unauthorized,但首次仅在桌面 Java 上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7094729/