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

Google Workspace超级管理员如何通过API获取其他账户的Google Contacts

Google Workspace 特定账户联系人授权访问方案

一、核心授权实现方式

作为Workspace超级管理员,你有两种可靠的方式访问域内特定账户的Google Contacts:用户模拟(Impersonation)和服务账户域范围委派,具体说明如下:

1. 用户模拟(通过服务账户实现)

完全可以通过用户模拟访问目标账户的Contacts,操作步骤如下:

  • 在Google Cloud控制台创建服务账户,为其启用域范围委派(Domain-Wide Delegation)。
  • 以超级管理员身份登录Workspace管理控制台,进入「安全」→「API控制」→「域范围委派」,为该服务账户授权以下OAuth 2.0范围:
    • https://www.googleapis.com/auth/contacts.readonly(仅需读取时使用)
    • 若需编辑联系人,额外添加https://www.googleapis.com/auth/contacts
  • 在代码中使用服务账户密钥,模拟目标用户(如press@....org)身份发起API请求。

示例代码(Python):

from google.oauth2 import service_account
from googleapiclient.discovery import build

# 服务账户密钥文件路径
SERVICE_ACCOUNT_FILE = 'path/to/your/service-account-key.json'
# 要模拟的目标用户邮箱
TARGET_USER = 'press@....org'
# API权限范围
SCOPES = ['https://www.googleapis.com/auth/contacts.readonly']

# 构建基础凭据
credentials = service_account.Credentials.from_service_account_file(
    SERVICE_ACCOUNT_FILE, scopes=SCOPES)
# 切换为目标用户身份
delegated_credentials = credentials.with_subject(TARGET_USER)

# 初始化People API(Google Contacts已迁移至该API)
service = build('people', 'v1', credentials=delegated_credentials)

# 获取联系人列表
results = service.people().connections().list(
    resourceName='people/me',
    pageSize=100,
    personFields='names,emailAddresses'
).execute()
contacts = results.get('connections', [])

for contact in contacts:
    display_name = contact.get('names', [{}])[0].get('displayName', '无姓名')
    emails = contact.get('emailAddresses', [{}])[0].get('value', '无邮箱')
    print(f"{display_name}: {emails}")

2. 服务账户直接访问(配合域范围委派)

单独的服务账户没有自身的联系人数据,必须结合域范围委派+用户模拟才能访问域内用户的Contacts。这和上面的用户模拟逻辑是统一的——服务账户仅作为身份代理,实际访问权限依托于被模拟的目标用户。

二、关键注意事项

  • API选型:Google Contacts API已逐步被People API替代,建议优先使用People API开发,兼容性与功能更完善。
  • 权限最小化:遵循最小权限原则,仅授予必要的权限范围(如只读场景只用readonly),降低安全风险。
  • 测试验证:先在测试账户上验证权限配置与代码逻辑,再推广到生产环境的目标账户。
  • 管理员权限:确保你的超级管理员账户拥有「管理API客户端访问」权限,否则无法配置域范围委派。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 02:42:40