使用有效的 access_token 时缺少令牌端点 URI

2023-12-06

突然(可能是 gem 更新?)调用 Google api 停止工作了。 我已经能够检索 Gmail 线程,但现在不能了。

到目前为止我所拥有的:

我能够检索刷新令牌以进行离线访问。所以我存储了刷新和访问令牌。伟大的。

现在我想检索个人资料信息。这就是我所做的(请注意,这曾经工作得很好!)

我将在下面的每一行后面添加一个 put 来向您展示我们得到的内容......

module AuthHelper
  require 'google/api_client/client_secrets'
  ...
  client = Signet::OAuth2::Client.new(access_token: user.gmail_access_token)
  service = Google::Apis::GmailV1::GmailService.new
  service.authorization = client
  service.get_user_profile('me') # retrieve threads
  ...
end

让我打印我得到的回复:

CLIENT : --- !ruby/object:Signet::OAuth2::Client
authorization_uri: 
token_credential_uri: 
client_id: 
client_secret: 
code: 
expires_at: 
expires_in: 
issued_at: 
issuer: 
password: 
principal: 
redirect_uri: 
scope: 
state: 
username: 
expiry: 60
extension_parameters: {}
additional_parameters: {}
access_token: ya29.Ci8QA3K_mLh1vB_55bSnGVB66yLwzkxClM8yCI5qmmZo6n0JzjVNA7Q6EAOm3qQeGw

SERVICE : --- !ruby/object:Google::Apis::GmailV1::GmailService
root_url: https://www.googleapis.com/
base_path: gmail/v1/users/
upload_path: upload/gmail/v1/users/
batch_path: batch
client_options: !ruby/struct:Google::Apis::ClientOptions
  application_name: unknown
  application_version: 0.0.0
  proxy_url: 
  use_net_http: false
request_options: !ruby/struct:Google::Apis::RequestOptions
  authorization: 
  retries: 0
  header: 
  timeout_sec: 
  open_timeout_sec: 20

SERVICE.authorization : --- !ruby/object:Signet::OAuth2::Client
authorization_uri: 
token_credential_uri: 
client_id: 
client_secret: 
code: 
expires_at: 
expires_in: 
issued_at: 
issuer: 
password: 
principal: 
redirect_uri: 
scope: 
state: 
username: 
expiry: 60
extension_parameters: {}
additional_parameters: {}
access_token: ya29.Ci8QA3K_mLh1vB_55bSnGVB66yLwzkxClM8yCI5qmmZo6n0JzjVNA7Q6EAOm3qQeGw
{"message":"Sending HTTP get https://www.googleapis.com/gmail/v1/users/me/profile?","@timestamp":"2016-06-28T19:52:38.974-07:00","@version":"1","severity":"DEBUG","host":"ben.local"}
{"message":"Caught error Missing token endpoint URI.","@timestamp":"2016-06-28T19:52:38.976-07:00","@version":"1","severity":"DEBUG","host":"ben.local"}
{"message":"Error - #\u003cArgumentError: Missing token endpoint URI.\u003e\n","@timestamp":"2016-06-28T19:52:38.977-07:00","@version":"1","severity":"DEBUG","host":"ben.local"}
GOT EXCPETION: Missing token endpoint URI.

我不应该看到这个:“缺少令牌端点 URI”。当您使用 access_token 时,它应该处理授权,对吧?正如我所说,这以前不是问题。

虽然我认为不需要,但我添加了端点 URI 'https://accounts.google.com/o/oauth2/auth' 来自 client_secret.json 并获取授权失败。

我错过了什么? :)


Google 文档删除了应该解释一旦您从所有在线教程中实际获得访问令牌后如何访问其 api 的部分!这里:

  1. https://github.com/google/google-api-ruby-client
    • 停止用此注释解释如何进行身份验证:“drive.authorization = ... # See Googleauth 或 Signet 库” 因此,我们将转向 Signet,因为 Googleauth 很神秘。
  2. https://github.com/google/signet
    • 指导您如何获取访问令牌,然后停止解释如何使用它。
  3. https://developers.google.com/identity/protocols/OAuth2WebServer#offline
    • Google 的 API 文档向您展示了如何获取访问令牌,甚至可以通过刷新进行离线访问(我有),然后 NO 关于如何处理访问令牌的解释。

我终于在这里找到了答案:https://github.com/google/google-api-ruby-client/issues/296

基本上为访问令牌创建一个新类(我将其添加到我的 lib 文件夹中)并遵循上面链接中描述的其余内容。仅将 .authenticate 替换为 .authorize,我猜这是一个错误。希望这对某人有帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用有效的 access_token 时缺少令牌端点 URI 的相关文章

  • 在 Rails 中将一列添加到另一列之前

    我想在我的桌子前面放一个柱子我知道你可以做到 add column customer first name after last name 但有什么办法吗 before 您可以使用以下命令在表格前面插入一列 first option add
  • 在虾中使用列表

    我使用 prawn 创建 pdf 文件 其中包含大量表格格式的数据和一些列表 列表的问题在于 我只是使用文本作为列表 因为没有与 ul gt li 列表等效的语义 就像我在 webfrointend 中使用它们一样 所以这些清单是不合理的
  • Rails 如何确定传入请求格式?

    我只是想知道 Rails 如何知道请求的格式以正确输入著名的 respond to do format format html format xml format json end 作为一个例子 考虑一下我遇到的这种情况 假设通过 java
  • Rails cron 每当捆绑:命令未找到

    我尝试使用 每当 每天执行一次耙子任务 我收到这个错误 bin bash bundle command not found home app rvm rubies ruby 1 9 2 p180 lib ruby site ruby 1 9
  • 对同一类型的多个项目使用“引用”

    因此 我正在自学 Ruby on Rails 并具有 PHP 背景 我编写了一个草率的 概念验证的 PHP 应用程序 名为 2NDP http rezich com storybored 我想在 Ruby on Rails 中重新创建它 但
  • ruby 无法复制 Fixnum

    我有一些这样的代码 ssh files id rsa pub id rsa ssh files each with index do item index ssh files index generate ssh path creator
  • 使用 gem 添加辅助方法

    我找到了很多有关添加表单辅助方法的信息 请参阅我的其他问题之一 但我找不到有关添加辅助方法的任何信息 就好像它们是在application helper rb 我尝试过复制application helper rb从 Rails 应用程序到
  • 使用自定义令牌进行 Firebase 身份验证

    我有一个 firebase 项目 我试图从我的 Rails 服务器进行身份验证 按照文档上的说明使用 ruby jwt 库创建自定义令牌 但我不断收到相同的错误 auth invalid custom token 自定义令牌格式不正确 请检
  • 在environment.rb中设置的常量在开发模式下消失

    了解 Rails 缓存如何工作的人可以真正帮助我 这是嵌套在 Rails Initializer run 块内的代码 config after initialize do SomeClass const set SOME CONST SOM
  • RSpec:重新打开类时存根 Rails.application.config 值不起作用?

    我在应用程序配置中定义了一个选项 我想要测试的类是在 gem 中定义的 不是我编写的 我想重新开课 Myclass class eval do if Rails application config myoption value1 some
  • jruby-openssl 中已初始化常量

    当在 Torquebox 上运行我的 Rails 应用程序时 我得到了很多 already initialized constant 警告源自gems jruby openssl 0 8 2 lib shared jruby openssl
  • Rails 3 > 在 rake 任务中渲染视图

    我遇到了一项需要为 Mailchimp 准备新闻通讯的 rake 任务 使用 google 搜索到的 Rails 2 x 内容 我现在有了以下代码 desc Sends newsletter to Mailchimp list task s
  • 使用 Figaro 和 Secrets.yml 管理环境变量

    我有一个 Rails 4 1 应用程序 我正在尝试组织我的环境变量 截至目前 我的 config 文件夹中有一个 Secrets yml 文件 我还安装了费加罗宝石 我的目标是将所有环境变量放在 application yml 未签入 gi
  • 如何在 jQuery.ui.autocomplete 中的自动完成弹出窗口下方添加所有搜索的链接?

    我有使用 jQuery UI 自动完成插件的搜索建议自动完成功能 http jqueryui com autocomplete http jqueryui com autocomplete 但是如何添加结果弹出项目的底部 其行为类似于 Qu
  • 在 Rails 中,如何为模型的新实例生成唯一的序列号?

    在 Rails 中 我正在寻找一种方法来生成自动递增序列号 以便为模型的新实例保存内部记录 我想避免创建特定于数据库的代码 而是拥有一个无论数据库如何都可以工作的解决方案 我当前的想法是等到模型保存后 然后获取已保存模型的 ID 并将其用作
  • 找不到关联,Rails 3

    class Membership lt ActiveRecord Base belongs to role belongs to user end class User lt ActiveRecord Base has many roles
  • 如何在Rails 中使用highlight.js?

    我正在尝试在我的 Rails 应用程序中使用语法突出显示和highlight js height js 的说明如下 https github com isagalaev highlight js https github com isaga
  • 后端验证轨

    如何验证文本列不包含网站 示例可以是 www google com google com http gooogle com http www google com https www google com https google com
  • Rails apns 用于向 Apple ipad 推送通知 - 使用哪个 gem?

    我希望从 Rails 3 0 3 应用程序向苹果推送通知 我发现了各种 apns ish 宝石 包括 apns on rails 其中一些似乎有点旧 1 或 2 年 并且非常不清楚 2012 年使用的 当前 是什么 根据我的标准 您能推荐使
  • 如何使用 Rspec 来测试使用 Paperclip 的模型是否正在验证上传文件的大小?

    该模型 class Attachment lt ActiveRecord Base belongs to narrative attr accessible description user id narrative id has atta

随机推荐