Ruby twitter客户端

时间:2011-02-26 23:05:41

标签: ruby twitter

我正在尝试创建一个基于ruby的twitter客户端,我可以使用ruby从命令行发布我的状态。我现在正试图理解oauth,这让我有点困惑。如果我正在构建Web应用程序,我可以在请求令牌完成时提供回调URL。我如何从命令行执行此操作?我不希望ruby打印出授权并复制并粘贴网址,然后单击“允许”以获取令牌。我发现了一些有关带外交换或PIN的信息。如何使用ruby中的OAuth库,请非常感谢。

3 个答案:

答案 0 :(得分:4)

要使用回调网址机制,您的应用程序应该是web application。您似乎正在开发desktop application,如果是这种情况,您应该通过提供oauth_callback_url“oob”(带外)来遵循“ PIN码”流程当你请求令牌时。像这样,

  

https://api.twitter.com/oauth/request_token?的 oauth_callback = OOB

如果您正确设置了此HTTP请求的标头(设置HTTP标头是OAuth的关键部分,我认为您已经知道如何执行此操作),Twitter将提供oauth_tokenoauth_token_secretoauth_verifier。我们称这个标记为"request_token"。您需要它以后获得"access_token"

获得request_token后,您需要使用以下网址打开网页

  

http://api.twitter.com/oauth/authorize?oauth_token= request_token

这将打开授权页面,让用户决定用户是否允许您的应用程序访问其Twitter帐户。如果使用说好,那么Twitter提供 PIN码。您需要允许用户键入PIN码,以便保存它。

现在,是时候使用"access_token"comsumer_key / secretrequest_token获取另一个令牌PIN code了。您应该正确设置包含所有这些值的标头,并使用此URL再次执行HTTP请求,

  

https://api.twitter.com/oauth/access_token

如果Twitter接受您的“access_token”请求,它会为您提供oauth_tokenoauth_token_secretuser_idscreen_name。我们称这个标记为"access_token"。现在,您可以使用access_tokenits secret (oauth_token_secret)执行任何OAuth所需的Twitter API。您可以将这两个值保存在文件中,并在需要访问用户的Twitter帐户时继续使用它们。在用户撤销对您的应用程序的访问权限之前,这些值始终有效。

我不了解Ruby,但如果您知道如何使用Ruby中的自定义标头执行HTTP / HTTPS请求(GET / POST),那么如果您仔细关注Twitter API文档,此PIN码流应该可以正常工作。祝你好运!

答案 1 :(得分:1)

在获取请求令牌之前指定oauth_callback,它会询问PIN码,在将用户转发到授权网址时

@consumer = OAuth :: Consumer.new(       TWITTER_CONSUMER_KEY,       TWITTER_CONSUMER_SECRET,       {:站点=> “中https://api.twitter.com”})

@request_token = @ consumer.get_request_token(:oauth_callback => CALLBACK_URL

这是冲浪几个小时的不完整文档的结果。

答案 2 :(得分:0)

使用Twitter gem,它会让事情变得更轻松。 http://rdoc.info/gems/tweeter/2.0.0/frames