Как настроить Google Translate API для Node.js? - PullRequest
1 голос
/ 13 мая 2019

Я хочу использовать Googles Cloud Translation API в моем приложении Node.js, однако я получаю ошибку 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, Node v10.13.0.

1 Ответ

0 голосов
/ 13 мая 2019

Возможно, вы пропустили определение этой переменной среды, прежде чем запускать службу узла

Замените [PATH] на путь к файлу JSON, который содержит ключ учетной записи службы, и [FILE_NAME] на имя файла.

С PowerShell:

$env:GOOGLE_APPLICATION_CREDENTIALS="[PATH]"

For example:

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