使用Google API邀请管理员时遇PERMISSION_DENIED(403)问题求助
问题描述
作为商家档案账户的OWNER,尝试通过OAuth Playground调用Google API邀请管理员,参数如下:
- scope:
https://www.googleapis.com/auth/business.manage - 请求方法:
POST - 请求URL:
https://mybusinessaccountmanagement.googleapis.com/v1/accounts/108463676430689610134/admins - 请求体:
{ "role": "MANAGER", "admin": "mina.zakaria.zakher@gmail.com" }
调用后返回403权限错误:
{ "error": { "status": "PERMISSION_DENIED", "message": "The caller does not have permission", "code": 403 } }
但通过商家档案后台面板可以成功添加同一邮箱的管理员,需解决API调用的权限问题。
解决步骤
确认OAuth授权账号一致性
确保在OAuth Playground中授权使用的账号,和你在后台面板操作的是同一个OWNER账号。OAuth Playground可能关联多个Google账号,授权时务必选择正确的商家档案所属账号。验证Scope授权完整性
在OAuth Playground的授权步骤中,确认https://www.googleapis.com/auth/business.manage这个scope被完整勾选并授权。如果授权过程中scope未被正确选中,令牌会缺少必要权限。核对账号ID准确性
检查请求URL中的账号ID108463676430689610134是否为你拥有OWNER权限的商家档案账户ID,避免将具体门店的位置ID误当作账号ID使用。检查OAuth令牌权限
在OAuth Playground中获取令牌后,通过"Exchange authorization code for tokens"后的"Token info"按钮查看令牌详细信息,确认令牌包含商家账号管理权限,且关联的账号ID与目标账号一致。重新生成OAuth令牌
若令牌存在过期或权限异常,重新执行OAuth授权流程:清除现有授权,重新选择账号、勾选正确scope,获取新的令牌后再次尝试API调用。
内容的提问来源于stack exchange,提问作者Mina Zakaria

