使用服务账号访问Admin SDK API提示无权限读取活动记录如何处理
401报错排查步骤
- 全域授权scope不匹配:确认Workspace管理员给服务账号Client ID授予全域权限时,已经精确添加了你代码中使用的scope
https://www.googleapis.com/auth/admin.reports.audit.readonly,scope多写、漏写、写错都会触发权限校验失败。 - 服务账号Client ID输入错误:确认管理员配置全域授权时填写的Client ID,和你当前使用的服务账号的Client ID完全一致,不要填成服务账号邮箱或者项目ID。
- 模拟账号权限不足:代码中
setSubject传入的<my_account_email>必须是当前Workspace域内拥有审计报告查看权限的管理员账号(建议优先用超级管理员账号测试),普通域账号即使通过服务账号模拟也没有读取审计日志的权限。 - Google Cloud项目未启用API:确认你创建服务账号的Cloud项目已经启用了Admin SDK API,未启用对应API的情况下调用会直接返回鉴权失败。
- 凭据文件不匹配:确认你使用的
credentials.json是已获得全域授权的那个服务账号的密钥文件,不要误用其他服务账号、普通OAuth客户端的凭据。
代码注意事项
你当前代码存在一处笔误,执行成功后会返回未定义变量报错:存储接口返回结果的变量是$results,但你return的是$result,需修正变量名。
内容的提问来源于stack exchange,提问作者Hung Dang
相关产品推荐
相关产品推荐

