首页 > 解决方案 > Google People API:来自非空联系人组的 member_resource_names 返回 nil

问题描述

根据代码中的文档member_resource_names应该返回“作为联系人组成员的联系人资源名称列表”,但它返回 nil。

我正在做这样的事情(红宝石):

service = Google::Apis::PeopleV1::PeopleServiceService.new
# authentication code
contact_group = service.get_contact_group("contactGroups/xxxxxxxxxxxxxxxx")
=> #<Google::Apis::PeopleV1::ContactGroup:0x00007fd69fca6f48
  @etag="xxxxxxxxxxxx",
  @formatted_name="Contact list",
  @group_type="USER_CONTACT_GROUP",
  @member_count=10,
  @metadata=#<...>,
  @name="Contact list",
  @resource_name="contactGroups/xxxxxxxxxxxxxxxx">
contact_group.member_resource_names
=> nil

即使member_count是 10,也总是member_resource_names返回 nil。

我正在使用 ruby​​ 2.4 和 google gem 0.52.0。

其他人见过这个问题吗?

标签: rubygoogle-people-api

解决方案


问题:

调用contactGroups.get时,您应该指定maxMembers.

解释:

如果您访问有关contactGroups的官方 API 文档,您会看到memberResourceNames仅在某些情况下填充:

memberResourceNames[]:仅输出。作为联系人组成员的联系人资源名称列表。该字段仅为 GET 请求填充,并且只会返回与 get 请求中的 maxMembers 一样多的成员

maxMembers, 但是,如果未指定,则默认为 0

maxMembers:可选。指定要返回的最大成员数。如果未设置,则默认为 0,这将返回零个成员

解决方案:

因此,基于库示例:

def get_contact_group(resource_name, max_members: nil, fields: nil, quota_user: nil, options: nil, &block)

你应该改变这一行:

contact_group = service.get_contact_group("contactGroups/xxxxxxxxxxxxxxxx")

有类似的东西:

contact_group = service.get_contact_group("contactGroups/xxxxxxxxxxxxxxxx", 100)

返回成员的最大数量在哪里100(根据您的喜好更改)。

参考:


推荐阅读