【发布时间】:2018-05-25 06:36:33
【问题描述】:
我正在使用 Google PeopleService“updateContact”端点对联系人执行更新操作,我注意到某些字段未正确更新。我已经使用“get”端点获取了一个联系人,并更新了联系人的工作类型地址以添加以前没有的邮政编码,然后使用 updateContact 将联系人提交回来。我收到 200 OK 响应,但返回的联系人对象未显示更改。我在使用 .NET 客户端库和 API 资源管理器时看到了这种行为。
更新前的地址数据:
"addresses": [
{
{
"metadata": {
"source": {
"type": "CONTACT",
"id": "61327fef08903be4"
}
},
"formattedValue": "123 Anywhere Street\nSometown",
"type": "work",
"formattedType": "Work",
"streetAddress": "123 Anywhere Street",
"city": "Sometown"
}]
地址数据在更新前已更改:
"addresses": [
{
{
"metadata": {
"source": {
"type": "CONTACT",
"id": "61327fef08903be4"
}
},
"formattedValue": "123 Anywhere Street\nSometown",
"type": "work",
"formattedType": "Work",
"streetAddress": "123 Anywhere Street",
"city": "Sometown",
"postalCode": "55555"
}]
响应更新请求接收到的地址数据:
"addresses": [
{
{
"metadata": {
"source": {
"type": "CONTACT",
"id": "61327fef08903be4"
}
},
"formattedValue": "123 Anywhere Street\nSometown",
"type": "work",
"formattedType": "Work",
"streetAddress": "123 Anywhere Street",
"city": "Sometown"
}]
在上面的示例中,期望值为“55555”的新邮政编码将显示在地址对象中。
我在更新人员字段掩码中指定了完整的可能字段集(具体而言,在本例中为“地址”字段),并确认相关联系人的资源名称和 ETag 准确且最新,并且在更新完成后我正在提取最新的副本。
这是人员服务更新端点的已知问题吗?我需要在请求中指定更多内容以强制执行文档中未记录的更新吗?
【问题讨论】:
-
似乎存在一个错误,除非更改了 formattedValue,否则地址字段不会更新。
-
看来你是对的;添加对 formattedValue 属性的强制重新评估解决了丢失的更新。谢谢!
标签: c# google-people-api