如何使用 google-api-ruby-client People API 传递 OAuth 令牌?

Posted

技术标签:

【中文标题】如何使用 google-api-ruby-client People API 传递 OAuth 令牌?【英文标题】:How to pass OAuth token using google-api-ruby-client People API? 【发布时间】:2021-12-13 21:12:18 【问题描述】:

我们正在将一个大型企业应用程序从 Google Contacts API 迁移到 People API。

以前,使用 OAuth 令牌向联系人 API 发出请求很容易。我们将使用 OAuth 进行身份验证,然后将令牌传递给 Google 联系人 API,如下所示:

# access_token is the token we receive from OAuth
@user = GoogleContactsApi::User.new(access_token)

# make a request
contact_objects = user.contacts

PeopleService code 展示了如何使用 API 密钥,然后只提到了 OAuth 令牌:

        #  API key. Your API key identifies your project and provides you with API access,
        #  quota, and reports. Required unless you provide an OAuth 2.0 token

但我一直找不到一个示例,说明如何使用 OAuth 令牌通过 Ruby gem 向 People API 发出请求。

能否提供一个简单示例,说明如何使用 OAuth 令牌发出 People API 请求?具体来说,我们想要访问用户联系人的电子邮件地址和电话号码。我相信我们会使用get_people。如果你能提供这个具体的例子,那就太好了。

谢谢! ????

【问题讨论】:

【参考方案1】:

看起来我们需要访问access_token.token 并像这样设置它:

require 'google/apis/people_v1'

class GooglePeopleApiWrapper
  attr_reader :service, :access_token

  def initialize(oauth_object)
    # outh_object is the `access_token` from my question, which is 
    # provided in the OAuth response
    @oauth_object = oauth_object 
    @service = Google::Apis::PeopleV1::PeopleServiceService.new
    @service.authorization = @oauth_object.token
  end

  def fetch_contacts
    # Fetch the next 10 events for the user
    contact_objects = @service.list_person_connections(
      'people/me',
      page_size: 10,
      person_fields: 'names,emailAddresses,phoneNumbers',
    )
    
    etc...
  end
end

【讨论】:

以上是关于如何使用 google-api-ruby-client People API 传递 OAuth 令牌?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Google API Client,如何创建客户端

如何使用 API 格式化 Google 表格电子表格单元格?

[精选] Mysql分表与分库如何拆分,如何设计,如何使用

如果加入条件,我该如何解决。如果使用字符串连接,我如何使用

如何使用本机反应创建登录以及如何验证会话

如何在自动布局中使用约束标识符以及如何使用标识符更改约束? [迅速]