如何在 Google People 更新联系期间提供 updateMask? 答案:更多信息:当前的解决方法:

问题描述

如果我需要更新联系人的姓名或地址,请将字段指定为“姓名、地址”。

我需要如何提供 updateMask 才能单独更新“middleName”等特定字段。

将 updateMask 提供为“names.middleName”不起作用并引发以下错误

{
  "error": {
    "code": 400,"message": "Invalid updatePersonFields mask path: \"names.middle_name\". Valid paths are documented at https://developers.google.com/people/api/rest/v1/people/updateContact.","status": "INVALID_ARGUMENT"
  }
}

有人帮忙吗?

解决方法

答案:

您需要使用 names 作为 updatePersonFields,但需要指定所有名称。这可能是一个错误,如下所示,但文档中也不清楚。

更多信息:

这可能是一个错误,但直到从 issue tracker report 获得响应(我假设是你 - 但如果不是 - 击中星星以帮助它获得更多关注)关于这不是可以肯定地知道。

虽然 FieldMasks do 接受子字段,但这些没有在 updatePersonFields 文档页面中指定,只有更广泛的 names

您可以在查询参数下看到绝对支持的字段列表 here

当前的解决方法:

在等待 Google 对错误报告做出回应的同时,您可以解决此问题的唯一方法是使用 names 字段掩码,同时还包括 firstNamelastName 参数制作补丁时也是如此:

{
  "names": [
    {
      "givenName": "Rafa","middleName": "Guillermo","familyName": "Rocks"
    }
  ],"etag": "%XxXXXx00XxxXXXXXXxXXXX00XXXXXXxXxxX0"
}

请记住:如果您遗漏了这些字段中的任何一个,这相当于将其替换为空字符串 - 所以要小心!

希望对你有帮助!

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...