0

我已经阅读了Twitter 编写的关于实现 OAuth 的页面。我已经注册了我的应用程序,它只会访问我的帐户,所以我跳过了所有请求令牌的内容。我有,从“你的应用程序”页面:

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

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

但是,当我连接到 Twitter Rest API 并尝试验证凭据命令时,响应总是“签名不正确”。

我尝试使用来自erikeldridge 在 github 上的 gist中的不同代码(与我的非常相似),但它也不起作用。我没有通过 cURL 连接(使用遏制库),而是使用 Net/Http - 返回相同的错误响应。

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

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

谁能给我一个关于我可以做些什么来解决这个问题的建议?我将非常感谢任何意见。

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

4

2 回答 2

1

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

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

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

可以在此处找到更详细的 OAuthentication 流程。

于 2011-01-22T12:38:37.397 回答
0

我没有意识到你可以回答你自己的问题,但该网站正在提示我提供赏金所以......

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

于 2011-01-28T01:16:44.760 回答