如何获取Google Workspace所有用户/组变更的Webhook通知?
Google Workspace 全目录用户/组变更通知方案指引
你提到的Admin API watch 端点并非仅支持单个用户,它可以针对整个用户或组目录设置监听,以下是具体实现方案:
一、监听全用户目录变更
使用Admin SDK Directory API的 users.watch 方法,通过指定全局范围参数来覆盖所有用户:
- 核心参数设置:
customer:设为my_customer,代表当前Workspace域名下的所有用户event:指定需要监听的事件类型,支持add、update、delete、makeAdmin等,多个事件用逗号分隔address:你的HTTPS Webhook接收地址(必须可被Google公网访问)token:可选自定义令牌,用于后续验证通知来源
- 示例请求(curl):
curl -X POST \ 'https://admin.googleapis.com/admin/directory/v1/users/watch?customer=my_customer' \ -H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \ -H 'Content-Type: application/json' \ -d '{ "id": "UNIQUE_USER_WATCH_ID", "type": "web_hook", "address": "https://your-domain.com/webhook/google-users", "token": "YOUR_VERIFICATION_TOKEN" }'
二、监听全组目录变更
对应使用 groups.watch 方法,同样设置全局范围参数:
- 核心参数设置:
customer:设为my_customer,或用domain指定你的Workspace域名event:支持add、update、delete、addMember、removeMember等组相关事件
- 示例请求(curl):
curl -X POST \ 'https://admin.googleapis.com/admin/directory/v1/groups/watch?customer=my_customer' \ -H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \ -H 'Content-Type: application/json' \ -d '{ "id": "UNIQUE_GROUP_WATCH_ID", "type": "web_hook", "address": "https://your-domain.com/webhook/google-groups", "token": "YOUR_VERIFICATION_TOKEN" }'
三、关键注意事项
- Webhook验证:Google会先发送验证请求到你的接收地址,需返回请求中的
challenge参数值完成验证,否则订阅不会生效 - 订阅续期:watch订阅默认有效期7天,需定期(如每6天)重新调用
watch方法续期,避免通知中断 - 权限要求:调用API的账号需拥有Workspace超级管理员权限,或已启用域范围委派的服务账号
- 事件详情获取:Webhook通知仅包含基础变更信息,如需完整数据,可通过通知中的资源ID调用
users.get或groups.get接口查询
内容的提问来源于stack exchange,提问作者Trondh
相关产品推荐
相关产品推荐

