2011-01-21 56 views
0

我已阅读page on inplementing OAuth that Twitter have written。我注册了我的应用程序,它只会访问我的帐户,所以我跳过了所有的请求标记。我有,从"Your apps"页:Twitter OAuth - 错误的签名错误 - 我错过了什么?

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

我写一些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,都需要额外的参数。我一直在使用搜索API成功地使用路边库没有问题,所以我不认为这是连接方法。

任何人都可以请给我一个建议,我可以做什么来解决这个问题?我会很感激任何输入。

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

+0

固定 - 我在Twitter网站上重新生成了消费者密钥和密钥,并开始工作。我不知道为什么以前的设置不起作用,也许他们可以提供更详细的错误消息?但我很高兴:) – iain 2011-01-23 21:30:50

回答

0

我不知道你能回答自己的问题,但该网站提示我要悬赏所以...

它是固定的 - 我再生的消费者密钥和密码的Twitter网站,并开始工作。我不知道为什么之前的设置不起作用 - 代码是稳定的(现在一直工作),并且细节是正确的。也许他们(Twitter)可以提供更详细的错误消息?但我很高兴:)

1

即使你的应用程序只访问你的数据,你也不能简单地'跳过请求令牌的东西'。请求令牌是OAuthentication进程不可或缺的组成部分。

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

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

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

+0

谢谢。我仍然使用PIN码,但Twitter的文档说,如果您的应用程序只能访问您的帐户,您可以跳过它,因此他们会为您提供访问令牌和秘密,您为什么需要运行请求? – iain 2011-01-22 13:05:49