添加回调url时,Twitter API oAuth签名失败

添加回调url时,Twitter API oAuth签名失败,twitter,oauth,callback,Twitter,Oauth,Callback,我正在使用此代码/指南测试对API的请求签名。我仍在尝试完成第1步 注意:钥匙是随机的,不是真的:) 当我尝试在没有oauth_回调的情况下发出请求时,我从api得到了一个有效的响应 当我添加oauth_回调字符串(必须允许用户使用重定向进行签名!)时,我得到“验证oauth签名和令牌失败” 我的意思是这两个URL之间没有区别,它们都经过相同的执行,并且它们尊重签名方法。 如何修复它 是,我添加了http://127.0.0.1/test/作为twitter应用程序设置中的回调url 谢谢您

我正在使用此代码/指南测试对API的请求签名。我仍在尝试完成第1步

注意:钥匙是随机的,不是真的:)

当我尝试在没有oauth_回调的情况下发出请求时,我从api得到了一个有效的响应

当我添加oauth_回调字符串(必须允许用户使用重定向进行签名!)时,我得到“验证oauth签名和令牌失败”

我的意思是这两个URL之间没有区别,它们都经过相同的执行,并且它们尊重签名方法。 如何修复它

是,我添加了
http://127.0.0.1/test/
作为twitter应用程序设置中的回调url


谢谢

您在twitter应用程序设置中设置了回调url了吗

如果不进行设置,api可能会失败

请从以下位置查看:


同时检查您的时间是否同步(使用NTP服务器);请参阅:

我解决了这个问题。问题是,尽管回调URL是使用querystring方法或标题正确发送的,正如您在链接上看到的那样,但在从基串创建签名时,它也被双重转义。由于文档对此非常糟糕,我不认为您不应该像其他oauth_*参数一样对其进行双重转义(即百分比编码“&”)。

同意twitter API的文档记录很糟糕:)

遵循以下规则:

  • 如果您的oauth\u回调不包含任何查询字符串,则不需要任何funky
  • 如果您的oauth\u回调有任何查询字符串参数=URL编码则分别对查询字符串参数进行编码

  • 希望这能解释。

    还要检查您的时间是否由NTP服务器同步,因为令牌是时间敏感的。是的,我已经设置了回调url(我编写了它),并且时间是同步的(否则,为什么没有回调它就可以工作?)。无论如何-回调中没有“://”的任何内容都会被验证…您确定回调url是url编码的吗?因为这可能是使请求无效的一个很好的理由。是的。我从你的问题中看到,它看起来不错。那么它还能是什么呢?即使在应用程序设置中设置了回调,我也必须在请求中发送回调吗?我用完了。Twitter oAuth API很难启动。您可以尝试用您的语言(我想是php)找到一个工作示例。这可能是URL上的一些编码问题,imho;我读过很多关于twitter特性的文章。我使用Twitter4J,花了一段时间才摆脱oAuth的东西,即使有现成的示例和JavaAPI。如果你是一个人做的,痛苦是理所当然的。我看得出这是一个皮塔!奇怪的是,文档中说oauth/request_令牌需要回调URL,但我的请求只有在没有回调URL或使用非URL的情况下才能工作。如果需要的话,没有它就应该失败!你是说你必须双倍逃跑?还是你不能?这里有太多的否定,因此你的解释不清楚
    我不认为你不应该双重转义…
    =这是否意味着你应该或不应该双重转义?对不起:P你不能双重转义URL。