gpt4 book ai didi

ruby-on-rails - Pocket API 授权 : Forbidden

转载 作者:行者123 更新时间:2023-12-01 08:55:56 25 4
gpt4 key购买 nike

我正在通过使用 Pocket API 构建 Rails 应用程序来测试 RoR,并且我必须授权用户。对于 HTTP 请求,我使用 https://github.com/rest-client/rest-client图书馆。

第一步,获取请求 token 工作正常:

require 'rest_client'
response = RestClient.post 'https://getpocket.com/v3/oauth/request', :consumer_key => @consumer_key, :redirect_uri => @redirect_uri
@code = response.split("=")[1]

但我在第二步收到错误请求错误,即使用在上述步骤中收到的请求 token 获取访问 token :
access_token = RestClient.post 'https://getpocket.com/v3/oauth/authorize', :consumer_key => @consumer_key, :code => @code

400 Bad Request 是我在 Ruby 应用程序错误屏幕上看到的。我也用 cURL 和 POSTMan Chrome 扩展程序尝试了相同的请求,然后我得到的状态代码是:403 Forbidden。我得到的 X 错误代码是 158,它转换为 X 错误消息“用户拒绝代码”。在 Pocket API 文档上: http://getpocket.com/developer/docs/authentication .

由于我尝试了几个不同的 channel 来测试这个请求并且每次都失败了,我猜测问题不在于解析,而是我可能遗漏了一个重要的细节或步骤(也许是 HTTP 请求 header ?)。提前感谢您的帮助!

最佳答案

事实证明,我(或我们)遗漏了一个重要的细节:

每当在 POSTMan 或其他任何地方测试您对 Pocket API 的请求时,我们自然会跳过访问以下形式的授权 URL 的过程:

https://getpocket.com/auth/authorize?request_token=YOUR_REQUEST_TOKEN&redirect_uri=YOUR_REDIRECT_URI

现在,即使您之前可能允许您的应用访问您的帐户,在每次调用时,Pocket API 不会在访问此 URL 之前激活请求 token 。只有这样您的请求 token 才会被激活并可用于第二个身份验证步骤。这样做后它工作正常。

对于在 Ruby on Rails 中使用 Pocket API 的任何人来说,有一个很好的包装 gem: https://github.com/turadg/pocket-ruby

关于ruby-on-rails - Pocket API 授权 : Forbidden,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27636000/

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