【问题标题】:google_contacts_api - undefined method `get' for #<String:0x007fce71ad54e8> Did you mean? gemgoogle_contacts_api - #<String:0x007fce71ad54e8> 的未定义方法 `get' 您是说吗?宝石
【发布时间】:2017-02-22 05:39:19
【问题描述】:

我正在努力使用 google_contacts_api:https://github.com/aliang/google_contacts_api

我在 user.rb 中有以下代码:

google_contacts_user = GoogleContactsApi::User.new(self.authentications.first.token)
@x = google_contacts_user.contacts

self.authentications.first.token 是通过omniauth-google-oauth2 存储的令牌。

问题是,这是错误的:

undefined method `get' for #<String:0x007fce71ad54e8> Did you mean? gem

我做错了什么?

【问题讨论】:

  • 你查看google_contacts_user的类了吗?它的类不是String 类,对吧?
  • 不确定我是否在关注。我做错了什么?
  • 你试过调试google_contacts_user 吗?
  • 也许 self.authentications.first.token 是一个字符串,而不是 OAuth2::AccessToken 所需的对象
  • @AnApprentice 这一切都在 gem 的文档中“有关如何获取此对象的详细信息,请参阅他们各自的文档。”

标签: ruby-on-rails ruby ruby-on-rails-5 google-contacts-api


【解决方案1】:

首先安装oauth2

 gem install oauth2

然后从令牌字符串创建一个 Oauth2AccessToken 实例

 oauth2_object = OAuth2::AccessToken.new(self.authentications.first.token)

现在应该可以将此 Oauth2AccessToken 与 GoogleContacts gem 一起使用:

 GoogleContactsApi::User.new(oauth2_object)

我基于 gem 的文档

您需要将其中一项传递给 GoogleContactsApi::User 构造函数 以下两个对象:

来自 oauth-ruby gem 的 OAuth::AccessToken 和 OAuth2::AccessToken 来自 oauth2 gem

【讨论】:

  • 谢谢@joel_blum,刚刚试了一下,oauth2_object 行出错,“参数数量错误(给定 1,预期 2..3)”
  • @AnApprentice 你明白了吗?我将编辑我的答案以供将来参考
猜你喜欢
  • 2021-04-16
  • 1970-01-01
  • 2012-08-01
  • 2013-09-03
  • 1970-01-01
  • 2013-06-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多