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

Google Cloud Translation API请求缺失有效API密钥问题求助

解决Google Cloud Translation API「请求缺失有效API密钥」错误

先贴出你遇到的报错信息,方便参考排查:

E/AndroidRuntime: FATAL EXCEPTION: main Process: herrsa1.bit.translator, PID: 16598 com.google.cloud.translate.TranslateException: The request is missing a valid API key. at com.google.cloud.translate.spi.v2.HttpTranslateRpc.translate(HttpTranslateRpc.java:61) .. 18 more at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410) Caused by: com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 Forbidden { "code" : 403, "errors" : [{ "domain" : "global", "message" : "The request is missing a valid API key.", "reason" : "forbidden" }], "message" : "The request is missing a valid API key.", "status" : "PERMISSION_DENIED" } at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:113) ... 4 more at com.google.cloud.translate.spi.v2.HttpTranslateRpc.translate(HttpTranslateRpc.java:130) ... 19 more

我之前在Android项目调用Translate API时也踩过一模一样的坑,给你几个针对性的排查和解决方向:

  • 确认API密钥的基础配置是否正确

    1. 先登录Google Cloud控制台,搜索「Cloud Translation API」,确认它处于已启用状态。如果没启用,先点击启用按钮。
    2. 查看你的API密钥限制设置:如果是给Android应用使用,必须绑定正确的SHA-1指纹和应用包名(你的包名是herrsa1.bit.translator,要完全匹配)。限制规则错了的话,哪怕密钥本身有效,也会返回403。
    3. 测试阶段可以暂时去掉密钥的所有限制,如果去掉后能正常调用,说明是限制规则配置有误,再重新调整即可。
  • 检查代码里的密钥配置逻辑
    如果你用的是API密钥认证方式,要确保客户端初始化代码正确:

    TranslateOptions options = TranslateOptions.newBuilder()
        .setApiKey("你的API密钥")
        .build();
    Translate translate = options.getService();
    

    注意:上线时不要把密钥硬编码在代码里,可放在gradle.properties或安全的本地配置文件中,但测试阶段可以直接写入验证有效性。

    如果是用服务账号密钥(JSON文件)认证:

    • 确保JSON文件放在app/src/main/assets目录下,文件名无误。
    • 代码里正确加载密钥文件:
      InputStream inputStream = getAssets().open("service-account-key.json");
      TranslateOptions options = TranslateOptions.newBuilder()
          .setCredentials(ServiceAccountCredentials.fromStream(inputStream))
          .build();
      

    同时要确认该服务账号已拥有「Cloud Translation API User」的角色权限。

  • 检查应用网络环境与权限

    1. 确认AndroidManifest.xml中添加了网络权限:
      <uses-permission android:name="android.permission.INTERNET" />
      
    2. 如果测试环境使用了代理,可能会拦截请求导致密钥无法正确传递到Google服务器,可暂时关闭代理再测试。
  • 重新生成API密钥
    偶尔旧密钥会因缓存或未知原因失效,直接在控制台删除旧密钥,重新生成一个新的替换到代码中测试。

如果以上方法都无效,可以去Google Cloud控制台的「API和服务」→「日志」查看具体请求日志,里面会有更详细的错误细节,帮你精准定位问题。

内容的提问来源于stack exchange,提问作者Xiao Ning Er

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:37:42