如何让@google-cloud/translate API在localhost本地正常运行?
Node.js本地运行@google-cloud/translate的配置问题与解决方案
我需实现文本翻译功能,在Node.js服务器中按文档编写@google-cloud/translate代码,但因使用ES6导入,替换导入路径后可正常加载。测试时v3版本出现「无法加载默认凭据」错误,已安装Google Cloud CLI仍未解决;切换到v2版本后,又出现「请求缺少有效API密钥」错误——v2在公网服务器可正常运行,求本地运行的完整步骤与配置条件。
相关代码与导入语句
原始v3 CommonJS代码
const {TranslationServiceClient} = require('@google-cloud/translate'); const translationClient = new TranslationServiceClient(); async function translateText() { const request = { parent: `projects/${projectId}/locations/${location}`, contents: [text], mimeType: 'text/plain', // mime types: text/plain, text/html sourceLanguageCode: 'en', targetLanguageCode: 'sr-Latn', }; const [response] = await translationClient.translateText(request); for (const translation of response.translations) { console.log(`Translation: ${translation.translatedText}`); } } translateText();
ES6导入替换语句
- v3导入
import {TranslationServiceClient} from '@google-cloud/translate/build/src/v3/index.js'
- v2导入
import {Translate} from '@google-cloud/translate/build/src/v2/index.js'
错误信息
v3版本错误
Google translate error: Error: Could not load the default credentials. 请查看Google Cloud认证文档获取更多信息。
v2版本错误
"message": "The request is missing a valid API key."
本地运行完整配置步骤与条件
通用前置条件
- 已创建Google Cloud项目,并启用Cloud Translation API
- 安装Node.js v14及以上版本(确保支持ES6模块)
- 安装依赖包:
npm install @google-cloud/translate
v3版本本地配置步骤
v3依赖服务账号凭据完成认证,步骤如下:
- 生成服务账号密钥
- 登录Google Cloud控制台,进入「IAM与管理」→「服务账号」页面
- 创建新服务账号(或使用现有账号),为其添加「Cloud Translation API用户」权限
- 为该服务账号创建JSON格式的密钥文件,下载到本地(建议命名为
service-account-key.json)
- 配置凭据
- 方法一:环境变量(推荐,避免硬编码)
- Windows(命令提示符):
set GOOGLE_APPLICATION_CREDENTIALS=本地密钥文件的完整路径 - Windows(PowerShell):
$env:GOOGLE_APPLICATION_CREDENTIALS="本地密钥文件的完整路径" - macOS/Linux:
export GOOGLE_APPLICATION_CREDENTIALS=本地密钥文件的完整路径
- Windows(命令提示符):
- 方法二:代码中指定密钥路径
修改客户端初始化代码:const translationClient = new TranslationServiceClient({ keyFilename: '本地密钥文件的完整路径' });
- 方法一:环境变量(推荐,避免硬编码)
- 补充代码变量
确保代码中的projectId(你的Google Cloud项目ID)、location(如global或具体区域us-central1)、text(待翻译文本)已正确赋值
v2版本本地配置步骤
v2支持API密钥或服务账号认证,本地运行推荐使用API密钥:
- 生成API密钥
- 登录Google Cloud控制台,进入「API与服务」→「凭据」页面
- 创建「API密钥」,并限制该密钥仅能访问Cloud Translation API(降低密钥泄露风险)
- 配置API密钥
- 方法一:环境变量(推荐)
- Windows:
set TRANSLATE_API_KEY=你的API密钥 - macOS/Linux:
export TRANSLATE_API_KEY=你的API密钥 - 代码中读取密钥并初始化客户端:
const translate = new Translate({key: process.env.TRANSLATE_API_KEY});
- Windows:
- 方法二:代码中直接指定(不推荐,硬编码密钥存在安全隐患)
const translate = new Translate({key: '你的API密钥'});
- 方法一:环境变量(推荐)
- 适配v2代码逻辑
v2的调用方式与v3不同,示例代码如下:async function translateText() { const [translation] = await translate.translate('Hello', 'sr-Latn'); console.log(translation); }
内容的提问来源于stack exchange,提问作者MikeyB
相关产品推荐
相关产品推荐

