gpt4 book ai didi

ruby-on-rails - Ruby 中的 Twitter 三足授权

转载 作者:数据小太阳 更新时间:2023-10-29 07:56:27 26 4
gpt4 key购买 nike

我正在尝试在 rails 上使用我的手 ruby 。大多数情况下,我是在 Sinatra 中编写代码的。无论如何,这个问题可能与框架无关。这个问题听起来可能是一个非常新手的问题。我是第一次玩 Twitter 1.1 API 和 OAuth。

我创建了一个应用程序 XYZ 并在 Twitter 上注册了它。我得到了 XYZ 的消费者 key ,即 CONSUMER_KEY 和消费者 secret ,即 CONSUMER_SECRET。我还获得了 XYZ 自己的访问 token ,即 ACCESS_TOKEN 和访问 secret ,即 ACCESS_SECRET

XYZ 应用程序类型:读取、写入和访问直接消息XYZ 回调 URL:http://www.mysite.com/cback我已经检查:允许此应用程序用于使用 Twitter 登录

我想做的很简单:

1) 用户访问我的网站并单击链接 Link your twitter account (没有登录推特)
2) 打开 twitter 弹出窗口,用户在其中授予 XYZ 代表他/她执行操作的权限
3) 一旦用户允许并且弹出窗口关闭,XYZ 应用程序获取用户的访问 token 和密码并保存在数据库中。
4) 然后 XYZ 使用该用户的 token 和 secret 来执行 future 的操作。

我可能是个傻瓜,这样的工作流程已经在数千个站点上实现,并且 Twitter API 文档解释了这种三足认证,但我仍然无法弄清楚。

我已阅读 https://dev.twitter.com/docs/auth/3-legged-authorizationhttps://dev.twitter.com/docs/auth/implementing-sign-twitter不幸的是,在 Internet 上找不到通过逐步示例进行解释的 ruby​​ 代码。

当用户点击Link your twitter account时应该使用什么链接打开推特认证页面.这里的任何人都可以用我上面的伪证书写一些伪代码来实现我从这个工作流程开始到结束的目标吗?谢谢。

更新:

我开始请求请求 token 作为

require 'oauth'<br/>
consumer = OAuth::Consumer.new(CONSUMER_KEY, CONSUMER_SECRET,<br/>
{ site: "https://twitter.com"})<br/>
request_token = consumer.get_request_token oauth_callback: 'http://www.mysite.com/tauth'<br/>
redirect_to request_token.authorize_url

最佳答案

我不熟悉 ROR,但这是 OAuth“舞蹈”的工作流程,当用户点击您的按钮时您需要遵循:

  1. 通过发送要求

    发布https://api.twitter.com/oauth/request_token

    使用您的消费者密码签署请求。这将在后台完成,并且将对用户透明。

  2. 您将从推特。

  3. 将用户重定向到

    https://api.twitter.com/oauth/authorize?oauth_token=[token_received_from_twitter]

    使用您在第 2 步中从 Twitter 收到的 oauth token 值。

  4. 当用户授权您的应用时,他们将被重定向到您的带有附加到 oauth_token 和 oauth_verifier 的回调 url网址。即

    http://www.mysite.com/cback?oauth_token=NPcudxy0yU5T3tBzho7iCotZ3cnetKwcTIRlX0iwRl0&oauth_verifer=uw7NjWHT6OJ1MpJOXsHfNxoAhPKpgI8BlYDhxEjIBY

  5. 通过发送已签名的请求 token 将请求 token 转换为访问 token 与 oauth_verifier 一起请求

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

    签署您的请求使用您的消费者 secret 和在第 2 步中收到的 token secret 。

  6. 如果一切顺利,您将收到一个新的 oauth_token 并且来自 Twitter 的 oauth_token_secret。这是您的访问 token 用户。

  7. 使用在第 6 步中收到的访问 token 和 secret ,您可以Twitter api 通过发送签名请求代表用户调用到适当的 API 端点。

关于ruby-on-rails - Ruby 中的 Twitter 三足授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16516398/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com