首页 > 解决方案 > 如何为 Node.js 设置 Google 翻译 API?

问题描述

我想在我的 Node.js 应用程序中使用 Googles Cloud Translation API,但是我遇到了一个The request is missing a valid API key.错误。

我已按照Google 提供的快速入门指南进行操作。

我已经创建了 GCP 项目,将私钥下载为 JSON 文件,并在 Powershell ( img ) 中设置了环境变量。

之后我安装了库 yarn add @google-cloud/translate

我在translate.js文件中运行的代码来自带有附加try-catch块的快速入门指南:

async function quickstart(
  projectId = process.env.PROJECT_ID // Project Id from JSON file
) {
  try {
    // Imports the Google Cloud client library
    const { Translate } = require('@google-cloud/translate');
    // Instantiates a client
    const translate = new Translate({ projectId });

    // The text to translate
    const text = 'Hello, world!';

    // The target language
    const target = 'ru';

    // Translates some text into Russian
    const [translation] = await translate.translate(text, target);
    console.log('Text:', text);
    console.log('Translation:', translation);
  } catch (error) {
    console.error(error);
  }
}

quickstart();

然后当我运行时node translate.js,我会得到一个错误:

{ Error: The request is missing a valid API key.
   ...

  code: 403,
  errors:
   [ { message: 'The request is missing a valid API key.',
       domain: 'global',
       reason: 'forbidden' } ],
  response: undefined,
  message: 'The request is missing a valid API key.' }

我在 Windows 10,节点 v10.13.0 上。

标签: node.jsgoogle-translate

解决方案


相信你会错过这个环境变量定义,在启动节点服务之前

将 [PATH] 替换为包含您的服务帐户密钥的 JSON 文件的文件路径,并将 [FILE_NAME] 替换为文件名。

使用 PowerShell:

$env:GOOGLE_APPLICATION_CREDENTIALS="[PATH]"

For example:

$env:GOOGLE_APPLICATION_CREDENTIALS="C:\Users\username\Downloads\[FILE_NAME].json"

推荐阅读