【发布时间】:2019-01-10 01:09:53
【问题描述】:
我有我希望更新的人的资源名称和 etag,但我无法理解实际执行更新的文档。
我查看了 API 文档,我觉得我对所有内容的结构都正确。但是,我不断收到两种类型的错误 400 响应:
1)
https://people.googleapis.com/v1/people/c1596007341306697743:updateContact?updatePersonFields=%7B%27emailAddresses%27%3A+%5B%7B%27value%27%3A+%27hello%40gmail.com%27% 7D%5D%7D&alt=json 返回“'update_person_fields' 处的值无效 (type.googleapis.com/google.protobuf.FieldMask), 字段 'update_person_fields',无效的字段掩码'{'emailAddresses': [{'值':'hello@gmail.com'}]}'。映射键应表示为 ["some_key"].">
2)
https://people.googleapis.com/v1/people/c1596007341306697743:updateContact?updatePersonFields=%7B%27emailAddresses%27%3A+%7B%27value%27%3A+%27hello%40gmail.com%27%7D% 7D&alt=json 返回“无效的 updatePersonFields 掩码路径:”{'email_addresses': {'value': 'hello@gmail.com'}}"。有效路径记录在 https://developers.google.com/people/api/rest/v1/people/updateContact.">
第一次发生在列表括号 ([ ]) 留在 updatePersonFields 参数中时,第二次发生在它们被删除时。
我正在尽最大努力完全在 Python 中实现这一点,并且在查看和创建联系人方面都取得了成功。似乎更新调用与其他调用有所不同。欢迎和赞赏任何和所有输入。
profileCode = "people/blahblahblah"
accessToken = "%Eblahblahblah="
update = API.people().updateContact(
resourceName=profileCode,
body={"resourceName":profileCode, "etag":accessToken},
updatePersonFields={"emailAddresses":[{"value":"hello@gmail.com"}]}
).execute()
【问题讨论】:
-
我可以问你关于你的问题吗?您要更新什么属性?
-
@Tanaike,正如 Amos Yuen 所指出的,updatePersonFields 参数有问题。
-
感谢您提供更多信息。