使用Google People API Python添加联系人到组时遇400错误求助
问题排查与解决方案
错误原因
- 资源名称格式错误:你传入的
contactGroupResourceName使用了组名+多余单引号的格式(contactGroups/'try1123'),但People API要求该字段必须使用组的实际资源ID,而非显示名称,且格式应为contactGroups/{group_resource_id},不需要额外单引号。 - 误用组名而非资源ID:直接用组名(如
try1123)无法定位到对应的联系人组,API无法识别该参数。
解决方案
- 创建组时保存资源ID:调用
contactGroups().create后,从返回结果中提取resourceName,这是组的唯一标识。 - 使用正确的资源ID创建联系人:将提取到的组资源ID传入
memberships字段中。
修改后代码示例
创建联系人组并保存资源ID
service = build('people', 'v1', credentials=creds) # 创建组并获取资源ID group_response = service.contactGroups().create(body={"contactGroup": {"name": "try1123"}}).execute() group_resource_name = group_response['resourceName'] # 格式类似 "contactGroups/abc123xyz"
创建联系人并关联到指定组
service.people().createContact( body={ "names": [{"givenName": name}], "phoneNumbers": [{'value': phone_number}], "memberships": [ { "contactGroupMembership": { "contactGroupResourceName": group_resource_name } } ] } ).execute()
额外说明
如果是关联已存在的组,可通过contactGroups().list接口查询所有组的资源ID,再匹配组名获取对应的resourceName,而非直接使用显示名称。
内容的提问来源于stack exchange,提问作者eliotz
相关产品推荐
相关产品推荐

