我具有我要更新的人员的resourceName和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': [{'value':'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()
答案 0 :(得分:0)
请查看文档https://developers.google.com/people/v1/write-people#update-an-existing-contact中的示例。
updatePersonFields
只是用逗号分隔的应更新字段列表,例如emailAddresses,names
。您正在尝试在updatePersonFields
参数中指定要更新的联系人,而该联系人应在HTTP帖子正文中指定,而不是updatePersonFields
参数。