Ruby 推特客户端

标签 ruby twitter

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

最佳答案

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

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

如果你正确地设置了这个 HTTP 请求的 header (设置 HTTP header 是 OAuth 的关键部分,我想你已经知道如何做到这一点),Twitter 会给出 oauth_token oauth_token_secretoauth_verifier。我们称此 token 为 “request_token”。稍后您需要它来获取 "access_token"

一旦你有了request_token,你需要用下面的url打开网页

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

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

现在,是时候使用您的 comsumer_key/secretrequest_token 获取另一个 token ("access_token") PIN 码。您应该正确设置所有这些值的 header ,并使用此 url 再次执行 HTTP 请求,

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

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

我不了解 Ruby,但如果您知道如何在 Ruby 中使用自定义 header 执行 HTTP/HTTPS 请求(GET/POST),并且仔细遵循 Twitter API 文档,此 PIN 码流程应该可以正常工作。祝你好运!

关于Ruby 推特客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5130324/

相关文章:

ruby - 正则表达式用逗号和空格分割字符串,但忽略带连字符的单词?

python - 使用 Tweepy (4.10.0) Tweet_id 获取推文回复

ruby-on-rails - Ruby on Rails - 在字符串中转换 Twitter @mentions、#hashtags 和 URL

iOs OAuth 图片发布 + 状态更新问题

ruby - 如何使用 Nokogiri 正确修复未闭合的 HTML 标签

ruby-on-rails - 制作一个新数组被认为是动态分配 Ruby

php - Twitter 搜索 API,如何通过@username 进行过滤?

ios - Ben Gottlieb 的 Twitter+OAuth iOS SDK - 返回 nil 的用户名参数

ruby - 使用file.exists时不断出错

ruby-on-rails - Ruby 路由 - 堆栈级别太深