Search code examples
node.jsgoogle-cloud-platformgoogle-translateapi-key

How set API KEY in Google Translate Node.js code


I'm trying to create a Node.js code that uses Google Translate API. I got the code below from the Google doc

But when I run it, it says Error: The request is missing a valid API key. I have the key, but I don't know how and where to set it.

async function translate() { // Imports the Google Cloud client library
    const { Translate } = require('@google-cloud/translate');

    // Creates a client
    const translate = new Translate();

    /**
     * TODO(developer): Uncomment the following lines before running the sample.
     */
    const text = 'Hello, world!';
    const target = 'ru';

    // Translates the text into the target language. "text" can be a string for
    // translating a single piece of text, or an array of strings for translating
    // multiple texts.
    let [translations] = await translate.translate(text, target);
    translations = Array.isArray(translations) ? translations : [translations];
    console.log('Translations:');
    translations.forEach((translation, i) => {
        console.log(`${text[i]} => (${target}) ${translation}`);
    });
}
translate()

Solution

  • This page on setting up authentication explains that you need to download a credentials file from the create service account key page. This can then be added to your path (.bashrc) as follows:

    export GOOGLE_APPLICATION_CREDENTIALS="[PATH]"
    

    Alternately, you could add the line above to a .env file on your project root and source it when you are running the application:

    . ./.env
    npm start
    

    or

    sh -ac '. ./.env; npm start'