You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用People API(Python库)添加/删除Google联系人标签?

通过Google People API Python库管理联系人标签

添加标签

要给联系人添加标签,本质是将联系人加入对应的联系人组。如果标签(组)已存在,直接关联联系人;如果是新标签,需要先创建组。

1. 给已有联系人添加现有标签

使用people().updateContact方法,通过修改联系人的memberships字段关联目标组,示例代码:

from googleapiclient.discovery import build
from google.oauth2.credentials import Credentials

# 初始化API客户端
creds = Credentials.from_authorized_user_file('token.json', ['https://www.googleapis.com/auth/contacts'])
service = build('people', 'v1', credentials=creds)

# 目标联系人ID(格式为people/{person_id},可通过listContacts接口获取)
contact_id = 'people/1234567890'
# 目标标签组ID(格式为contactGroups/{group_id},可通过contactGroups.list接口获取)
group_id = 'contactGroups/abc123'

# 获取当前联系人的成员关系信息
contact = service.people().get(resourceName=contact_id, personFields='memberships').execute()

# 避免重复添加标签
existing_groups = [m['contactGroupMembership']['contactGroupResourceName'] for m in contact.get('memberships', [])]
if group_id not in existing_groups:
    contact['memberships'].append({
        'contactGroupMembership': {
            'contactGroupResourceName': group_id
        }
    })
    # 更新联系人信息
    service.people().updateContact(
        resourceName=contact_id,
        body=contact,
        updatePersonFields='memberships'
    ).execute()
    print(f"已添加标签: {group_id}")

2. 创建新标签并关联联系人

如果需要新增标签,先调用contactGroups().create创建组,再关联联系人:

# 创建新标签组
new_group = service.contactGroups().create(body={
    'contactGroup': {
        'name': '重要客户'  # 自定义标签名称
    }
}).execute()
new_group_id = new_group['resourceName']

# 将联系人关联到新标签组
contact['memberships'].append({
    'contactGroupMembership': {
        'contactGroupResourceName': new_group_id
    }
})
service.people().updateContact(
    resourceName=contact_id,
    body=contact,
    updatePersonFields='memberships'
).execute()
print(f"已创建并添加新标签: {new_group['name']}")

删除标签

删除标签就是将联系人从对应组中移除,通过people().updateContact过滤掉目标组的成员关系即可:

# 获取当前联系人的成员关系
contact = service.people().get(resourceName=contact_id, personFields='memberships').execute()
memberships = contact.get('memberships', [])

# 过滤掉要删除的标签组
updated_memberships = [
    m for m in memberships
    if m['contactGroupMembership']['contactGroupResourceName'] != group_id
]

# 更新联系人的成员关系
contact['memberships'] = updated_memberships
service.people().updateContact(
    resourceName=contact_id,
    body=contact,
    updatePersonFields='memberships'
).execute()
print(f"已删除标签: {group_id}")

关键注意事项

  • 权限:确保OAuth 2.0凭据包含https://www.googleapis.com/auth/contacts读写权限。
  • ID格式:联系人ID为people/{person_id},标签组ID为contactGroups/{group_id},可分别通过people().listContacts和contactGroups().list接口获取。

内容的提问来源于stack exchange,提问作者Max

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 12:07:18