Method: people.updateContact

更新现有联系人的联系数据。所有非接触式数据都不会被修改。系统会忽略要更新的联系人中的所有非联系人数据。系统会替换 updateMask 中指定的所有字段。

如果未为要更新的联系人指定 person.metadata.sources,或者没有联系人来源,服务器会返回 400 错误。

如果 person.metadata.sources.etag 与联系人的 etag 不同,则服务器会返回 400 错误(原因为 "failedPrecondition"),这表示联系人自其数据被读取后发生了更改。客户端应获取最新的人员,并将其更新合并到最新的人员中。如果对同一用户进行顺序更新,应使用 updateContact 响应中的 etag 以避免失败。

如果正在更新 memberships,并且未为相应用户指定联系群组成员资格,服务器会返回 400 错误。

如果为联系人来源的单例字段指定了多个字段,服务器会返回 400 错误:

  • 传记
  • 生日
  • 性别
  • names

应按顺序发送针对同一用户的更改请求,以免延迟时间增加和失败。

HTTP 请求

PATCH https://people.googleapis.com/v1/{person.resourceName=people/*}:updateContact

网址采用 gRPC 转码语法。

路径参数

参数
person.resourceName

string

由服务器分配的人员资源名称。格式为 people/{person_id} 的 ASCII 字符串。

查询参数

参数
updatePersonFields

string (FieldMask format)

必需。用于限制要更新的人员字段的字段掩码。您可以指定多个字段,只需用英文逗号分隔即可。所有更新的字段都将被替换。有效值包括:

  • addresses
  • 传记
  • 生日
  • calendarUrls
  • clientData
  • emailAddresses
  • 活动
  • externalIds
  • 性别
  • imClients
  • 兴趣
  • locales
  • 地理位置
  • memberships
  • miscKeywords
  • names
  • 昵称
  • 职业
  • 组织
  • phoneNumbers
  • relations
  • sipAddresses
  • 网址
  • userDefined
personFields

string (FieldMask format)

可选。用于限制返回每个人哪些字段的字段掩码。您可以指定多个字段,只需用英文逗号分隔即可。如果未设置,则默认为所有字段。有效值包括:

  • addresses
  • ageRanges
  • 传记
  • 生日
  • calendarUrls
  • clientData
  • coverPhotos
  • emailAddresses
  • 活动
  • externalIds
  • 性别
  • imClients
  • 兴趣
  • locales
  • 地理位置
  • memberships
  • 元数据
  • miscKeywords
  • names
  • 昵称
  • 职业
  • 组织
  • phoneNumbers
  • 照片
  • relations
  • sipAddresses
  • skills
  • 网址
  • userDefined
sources[]

enum (ReadSourceType)

可选。要返回的来源类型的掩码。如果未设置,则默认为 READ_SOURCE_TYPE_CONTACTREAD_SOURCE_TYPE_PROFILE

请求正文

请求正文包含一个 Person 实例。

响应正文

如果成功,则响应正文包含一个 Person 实例。

授权范围

需要以下 OAuth 范围:

  • https://www.googleapis.com/auth/contacts

如需了解详情,请参阅授权指南