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

集成Android Management API遇权限异常:调用者无权管理项目

Android Management API 创建Enterprise时出现Forbidden权限错误

我刚加入团队,正在给现有项目集成Android Management API。已经添加了该API、创建了带权限的服务账号,还写了.NET项目做测试。给服务账号配置了Android Management User和Owner权限,但用.NET库创建enterprise时抛出异常:

The service androidmanagement has thrown an exception. HttpStatusCode is Forbidden. Caller is not authorized to manage project.

补充信息:

  • 所用API密钥允许调用任意API
  • 应用名称是临时名称,和项目名称不匹配
  • 服务账号通过FileStream读取创建时下载的私钥.json文件

以下是基于官方示例编写的代码,错误在createRequst.Execute()处抛出:

string CreateEnterprise()
{
    SignupUrlsResource.CreateRequest signupUrlRequest = managementService.SignupUrls.Create();
    signupUrlRequest.ProjectId = cloud_project_id;
    signupUrlRequest.CallbackUrl = "https://www.yahoo.com";
    var signupUrl = signupUrlRequest.Execute();

    string enterpriseToken = signupUrl.Url;
    Console.WriteLine("Signup: " + enterpriseToken);

    EnterprisesResource.CreateRequest createRequest = managementService.Enterprises.Create(new Enterprise());
    createRequest.ProjectId = "Test Project";
    createRequest.SignupUrlName = signupUrl.Name;
    createRequest.EnterpriseToken = enterpriseToken;
    var enterprise = createRequest.Execute();

    return enterprise.Name;
}

排查与解决建议

  1. 修正ProjectId参数
    代码里创建Enterprise时用的createRequest.ProjectId = "Test Project"是项目显示名称,Google API要求这里填项目ID(不是名称)。去Google Cloud控制台找到对应项目的ID,替换这个字符串,和前面创建signupUrl时用的cloud_project_id保持一致。

  2. 验证服务账号权限绑定
    确认服务账号的权限是绑定在目标Google Cloud项目上,而非其他项目。同时确保Android Management Service Owner或Android Management Service User权限已正确授予,权限生效可能需要几分钟同步时间,耐心等待后再重试。

  3. 检查认证流程正确性
    确保用服务账号的私钥完成OAuth 2.0认证,而非仅依赖API密钥。API密钥多用于公开数据的匿名访问,服务账号需要通过JWT令牌认证请求,确认你的.NET客户端正确加载了私钥文件并完成了完整认证流程。

  4. 修正Enterprise Token的获取方式
    enterpriseToken不是直接用signupUrl.Url,而是用户访问生成的signupUrl完成企业注册后,Google跳转至你指定的CallbackUrl时携带的enterpriseToken参数。正确流程是:

    • 生成signupUrl后,引导用户访问该URL完成注册
    • 注册完成后从回调URL的参数中提取真实的enterpriseToken
    • 用这个真实令牌调用Enterprises.Create接口
  5. 核对应用与项目的关联
    确认你的.NET应用所使用的OAuth客户端已关联到目标Google Cloud项目,避免因项目不匹配导致权限校验失败。


内容的提问来源于stack exchange,提问作者Maximilian Hung

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 12:45:44