非管理员如何通过Google API获取个人Google Groups?
非管理员获取个人Google Groups列表的解决方案
你之前用的Admin Directory API的groups.list接口是域管理员专属的,普通用户哪怕持有https://www.googleapis.com/auth/groups权限也无法调用,这就是触发403错误的核心原因。要获取自己的群组列表,得换用面向普通用户的API方案:
1. 更换授权Scope
替换原有scope为以下组合(保留邮箱验证权限,新增个人信息读取权限):
[ "https://www.googleapis.com/auth/userinfo.email", "https://www.googleapis.com/auth/people.readonly" ]
若需要读取更丰富的群组关联信息,也可以用https://www.googleapis.com/auth/contacts.readonly,权限覆盖范围基本一致。
2. 调用Google People API接口
使用people.get端点获取当前用户的成员关系数据,指定仅返回群组相关字段:
GET https://people.googleapis.com/v1/people/me?personFields=memberships
3. 解析返回结果
返回的JSON数据中,memberships数组里membershipType为GOOGLE_GROUP的条目就是你所属的群组,group字段包含群组的名称、邮箱、资源ID等关键信息,示例片段如下:
{ "memberships": [ { "membershipType": "GOOGLE_GROUP", "group": { "resourceName": "groups/xxxxxx", "displayName": "我的项目协作群组", "email": "project-team@konstructly.com" } } ] }
补充提示
- 请确保你的Google Cloud Console项目已启用People API,否则会返回API未启用的错误。
- 如果需要单个群组的详细配置信息,可以调用Groups API的
groups.get接口(需针对单个群组ID发起请求),此时需额外添加https://www.googleapis.com/auth/groups.readonlyscope。
内容的提问来源于stack exchange,提问作者Dmitry Proshutinskiy
相关产品推荐
相关产品推荐

