5

我正在使用此代码/指导另一个 twitter oAuth cURL 访问令牌请求,该请求无法测试我对 API 的请求的签名。我仍在尝试完成此步骤 1

注意:密钥只是随机的,它们不是真实的:)

当我尝试在没有 oauth_callback 的情况下发出请求时,我得到了来自 api 的有效响应

https://api.twitter.com/oauth/request_token?oauth_consumer_key=nHb2kSQ2CD9MW1MdW5VeQ&oauth_nonce=1356902849&oauth_signature=MbvhwGiNPKQR0klUPx9fsmUtdJY%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=190284&oau_version=1900284

当我添加 oauth_callback 字符串(必须让用户使用重定向签名!)我得到“无法验证 oauth 签名和令牌”

https://api.twitter.com/oauth/request_token?oauth_callback=http%3A%2F%2F127.0.0.1%2Ftest%2F&oauth_consumer_key=nHb2kSQ2CD9MW1MdW5VeQ&oauth_nonce=1356902915&oauth_signature=2WTaI9jXNBaDd7f8AqIe6y3%2Beno%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1356902915&oauth_version=1.0

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

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

谢谢

4

3 回答 3

1

你有没有在推特应用设置中设置回调地址?

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

从这里检查它:

在此处输入图像描述

还要检查您的时间是否同步(使用 NTP 服务器);见:https ://dev.twitter.com/discussions/1043

于 2012-12-30T21:51:56.887 回答
1

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

遵循这条规则:

  1. 如果您的oauth_callback不包含任何查询字符串 = 不需要任何时髦。
  2. 如果您的oauth_callback有任何查询字符串参数 = URL单独编码查询字符串参数。

希望这能解释。

于 2017-10-02T03:49:00.970 回答
0

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

于 2012-12-31T15:14:52.310 回答