【问题标题】:Twitter OAuth - Incorrect signature errors - what have I missed?Twitter OAuth - 不正确的签名错误 - 我错过了什么?
【发布时间】:2011-06-13 03:12:12
【问题描述】:

我已阅读page on inplementing OAuth that Twitter have written。我已经注册了我的应用程序,它只会访问我的帐户,所以我跳过了所有请求令牌的东西。我有,来自"Your apps" 页面:

  • 消费者令牌
  • 消费者令牌秘密
  • 访问令牌
  • 访问令牌秘密

我编写了一些 ruby​​ 代码并针对 Beginner’s Guide to OAuth 测试其输出(建议阅读 Twitter 文档)。我得到相同的输出,即签名、基本字符串和授权标头是相同的。

但是,当我连接到 Twitter Rest API 并尝试 verify credentials command 时,响应总是“签名不正确”。

我尝试使用来自a gist by erikeldridge on github 的不同代码(与我的非常相似),但它也不起作用。而不是通过 cURL 连接(使用 curb library),我使用 Net/Http - 返回相同的错误响应。

我改用OAuth gem。它使用 Net/Http 进行连接。返回相同的错误响应。

验证凭据不是我尝试在 API 中使用的唯一命令,但它们都会给出相同的错误,无论是 GET 还是 POST,都需要额外的参数。我一直在使用 curb 库成功使用 Search API 没有问题,所以我不认为这是连接方法。

谁能给我一个关于我可以做些什么来解决这个问题的建议?如果您有任何意见,我将不胜感激。

红宝石 1.9.2;卷曲 7.21.2; oauth 0.4.4;遏制 0.7.8; json 1.4.6; OSX 10.6.5;

【问题讨论】:

  • 已修复 - 我在 Twitter 网站上重新生成了消费者密钥和秘密,它开始工作。我不知道为什么上一组不起作用,也许他们可以提供更详细的错误消息?但我很高兴:)

标签: ruby curl oauth twitter-oauth


【解决方案1】:

我不知道你可以回答你自己的问题,但该网站正在提示我提供赏金所以......

它已修复 - 我在 Twitter 网站上重新生成了消费者密钥和秘密,它开始工作了。我不知道为什么上一组不起作用 - 代码是可靠的(现在一直有效)并且细节是正确的。也许他们(Twitter)可以提供更详细的错误消息?但我很高兴:)

【讨论】:

    【解决方案2】:

    即使您的应用程序仅访问您的数据,您也不能简单地“跳过请求令牌内容”。请求令牌是 OAuthentication 过程的组成部分。

    总结一下,OAuth 流程的 3 个主要部分如下:

    1. 获取请求令牌密钥和请求令牌密钥
    2. 使用请求令牌授权应用程序访问您的数据。这将为用户(您)提供 PIN 码
    3. 使用 PIN 将请求令牌和机密交换为访问令牌和机密。

    可以找到更详细的 OAuthentication 流程here

    【讨论】:

    • 谢谢。无论如何我做了 PIN 位,但是 Twitter 文档说如果您的应用程序只访问您的帐户,您可以跳过它,因此他们会从您的帐户页面为您提供访问令牌和密码 - 那我为什么需要运行请求?
    • 道歉 - 我没有意识到 Twitter 在单个用户案例中提供了访问令牌和秘密。你是对的,你不应该经历整个过程。我唯一能建议的是仔细检查你是如何散列你的签名库的——当我第一次使用 OAuth 时,我做了一个噩梦。希望你能把它整理好。
    • 感谢斯蒂芬的帮助。听到你做对了事情但仍然没有解决方案真是令人气愤,将事情推到其他地方很有帮助(并确认你没有疯!:) 我在 Twitter 开发网站上重置了密钥,现在它有效 - 不知道为什么,但它有效!再次感谢。
    猜你喜欢
    • 2011-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-29
    • 2015-10-06
    • 2014-09-20
    • 2020-10-14
    • 2013-08-01
    相关资源
    最近更新 更多