本地非谷歌云环境调用Google Translate API报错如何解决
解决方案
问题原因
你当前混淆了谷歌云两种不同的API认证方式:
google.auth.default()调用的是OAuth类认证流程,依赖完整的服务账号/授权用户凭证文件,无法识别你手动编写的仅包含key字段的JSON;你手里的单条API密钥属于另一种独立的认证方式,不能直接赋值给GOOGLE_APPLICATION_CREDENTIALS环境变量使用。
方案1:直接使用现有API密钥调用(无需配置凭证文件)
不需要设置GOOGLE_APPLICATION_CREDENTIALS环境变量,直接修改初始化代码,传入API密钥即可:
from google.cloud import translate # 替换为你自己的谷歌云项目ID和对应API密钥 PROJECT_ID = "你的谷歌云项目ID" API_KEY = "the_key_code" TRANSLATE = translate.TranslationServiceClient(client_options={"api_key": API_KEY})
方案2:使用服务账号凭证(走默认认证流程)
如果需要使用google.auth.default()的默认认证逻辑,需从谷歌云后台导出完整的凭证文件,不要手动编写:
- 进入谷歌云控制台的「IAM与 Admin」页面,选择「服务账号」板块
- 新建/选择已有服务账号,为其分配
Cloud Translation API User的权限 - 进入服务账号详情页,切换到「密钥」标签,点击「添加密钥」-「创建新密钥」
- 密钥类型选择JSON,点击创建后平台会自动下载完整的凭证文件
- 将该文件路径设置为
GOOGLE_APPLICATION_CREDENTIALS环境变量的值,即可运行原有代码
内容的提问来源于stack exchange,提问作者proximacentauri
相关产品推荐
相关产品推荐

