Twitter OAuth - 错误的签名错误 - 我错过了什么?

时间:2011-01-21 12:39:33

标签: ruby curl oauth twitter-oauth

我已阅读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而没有问题所以我不认为这是连接方法。

任何人都可以给我一个建议,我可以做些什么来解决这个问题?我会非常感激任何意见。

Ruby 1.9.2; cURL 7.21.2; oauth 0.4.4;遏制0.7.8; json 1.4.6; OSX 10.6.5;

2 个答案:

答案 0 :(得分:1)

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

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

  1. 获取请求令牌密钥和请求令牌密钥
  2. 使用请求令牌授权应用程序访问您的数据。这将为用户(您)提供PIN
  3. 使用PIN码为访问令牌和密钥交换请求令牌和密码。
  4. 可以找到更详细的OAuthentication流程here

答案 1 :(得分:0)

我没有意识到你可以回答你自己的问题,但该网站正在促使我获得赏金......

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