Google 的人 API -- 更新联系人时出现问题 (Python)
Google's People API -- Issues Updating Contacts (Python)
我有我想更新的人的资源名称和 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
returned "Invalid value at 'update_person_fields'
(type.googleapis.com/google.protobuf.FieldMask), Field
'update_person_fields', Invalid FieldMask '{'emailAddresses':
[{'value': 'hello@gmail.com'}]}'. Map keys should be represented as
["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
returned "Invalid updatePersonFields mask path: "{'email_addresses':
{'value': 'hello@gmail.com'}}". Valid paths are documented at
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()
请查看文档中的示例https://developers.google.com/people/v1/write-people#update-an-existing-contact。
updatePersonFields
只是应该更新的字段的逗号分隔列表,例如emailAddresses,names
。您正在尝试在 updatePersonFields
参数中指定要更新的联系人,这应该在 HTTP post 正文中指定,而不是 updatePersonFields
参数。
我有我想更新的人的资源名称和 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 returned "Invalid value at 'update_person_fields' (type.googleapis.com/google.protobuf.FieldMask), Field 'update_person_fields', Invalid FieldMask '{'emailAddresses': [{'value': 'hello@gmail.com'}]}'. Map keys should be represented as ["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 returned "Invalid updatePersonFields mask path: "{'email_addresses': {'value': 'hello@gmail.com'}}". Valid paths are documented at 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()
请查看文档中的示例https://developers.google.com/people/v1/write-people#update-an-existing-contact。
updatePersonFields
只是应该更新的字段的逗号分隔列表,例如emailAddresses,names
。您正在尝试在 updatePersonFields
参数中指定要更新的联系人,这应该在 HTTP post 正文中指定,而不是 updatePersonFields
参数。