0

Je configure un serveur Node.JS pour utiliser l'API Google Traduction. Jusqu'à présent, je l'ai fait ce qui suit:Compte de service Google Translate 403 Erreur dailyLimitExceeded

  1. Mettre en place un compte Google
  2. Ajouter une carte de crédit et activer la facturation
  3. Créer un projet
  4. Activer Google Translate API pour le projet
  5. Créer deux compte de service pour le projet * et sauvegarde des fichiers de clé JSON

* Un compte de service pour le développement local et un compte pour l'application déployée.

Exemple de code (Tapuscrit):

import * as Translate from '@google-cloud/translate'; 

export async function translate(text: string, to: string): Promise<string> { 

    let translation = ''; 

    const googleTranslate = Translate({ 
     projectId: PROJECT_ID, 
     keyFilename: PATH/TO/KEY_FILE 
    }); 

    const response = await googleTranslate.translate(text, to); 

    if (Array.isArray(response[0])) { 
     for (let t of response[0]) { 
      translation += t; 
     } 
    } 
    else { 
     translation = response[0]; 
    } 

    return translation; 

} 

Je l'ai testé à la fois la clé locale et dev sur mon poste de travail et traduit avec succès. Cependant, il ne fonctionne pas dans un environnement déployé (machine différente, IP dynamique). L'erreur suivante se produit:

réponse d'erreur:

{ 
    domain: 'usageLimits', 
    reason: 'dailyLimitExceeded', 
    message: 'This API requires billing to be enabled on the project. Visit https://console.developers.google.com/billing?project=GOOGLE_PROJECT_ID to enable billing.', 
    extendedHelp: 'https://console.developers.google.com/billing?project=project=GOOGLE_PROJECT_ID' 
} 

La facturation est activée alors qu'est-ce que je manque?

Répondre

0

Résolu!

Les caractères non échappés dans la clé privée étaient en train de casser une recette de livre de cuisine Chef. Un processus différent synchronise maintenant le fichier sur le serveur à l'initialisation et la traduction fonctionne.