2

J'essaie d'utiliser l'API google speech pour convertir un fichier audio en texte, mais je rencontre des problèmes avec la documentation. J'ai activé l'API de la parole et créé un fichier de compte de service. J'ai également activé les informations d'identification du compte de service. Puis j'ai écrit la commande suivante pour récupérer le jeton d'autorisation en utilisant mon compte de service.Erreur GOOGLE_APPLICATION_CREDENTIALS

gcloud auth application-default print-access-token

Mais il retourne ce message enter image description here

Je ne comprends pas pourquoi cela se passe parce que je l'ai déjà une instance VM créée dans mon Compute Engine. Quelqu'un peut-il m'expliquer où je me trompe? De même, existe-t-il un autre moyen d'authentifier mon compte et d'appeler l'API google speech?

Répondre

4

Les informations d'identification gcloud et les informations d'identification par défaut des applications sont gérées séparément. Si vous avez activé le fichier de clé de compte de service, cela ne peut être utilisé que pour les commandes gcloud mais pas pour les informations d'identification par défaut de l'application.

gcloud auth application-default L'ensemble de commandes est uniquement là pour gérer les applications par défaut et n'a rien à voir avec les commandes gcloud auth.

Il quelques façons de "activer" les informations d'identification par défaut d'application:

  • Utilisez votre compte utilisateur
    • Run gcloud auth applocation-default login ou
  • Utiliser un compte de service (de préférence)

    • environnement ensemble variable GOOGLE_APPLICATION_CREDENTIALS=path/to/your/service_accont_key_file.json
    • copie path/to/your/service_accont_key_file.json à ~/.config/gcloud/application_default_credentials.json`

      • Sur les fenêtres cela peut être différent, exécutez

        gcloud info --format="value(config.paths.global_config_dir)" 
        

        pour obtenir un chemin vers votre répertoire de configuration.

maintenant comme commandent

gcloud auth application-default print-access-token 

devrait fonctionner.

+0

J'essaie d'utiliser la méthode key.json du compte de service pour authentifier mon localhost afin qu'il communique avec le service Google api. Je télécharge le fichier json, puis je vais dans la section Chemin d'accès à l'environnement de la fenêtre et définissez GOOGLE_APPLICATION_CREDENTIALS, mais je n'arrive toujours pas à accéder à l'API google depuis le site local. –

+0

Je présume que vous travaillez sur Windows. Juste pour confirmer, une fois que vous définissez votre variable d'environnement, vous devez également redémarrer toute application où vous essayez de l'utiliser. Essayez d'imprimer la valeur de la variable d'environnement pour confirmer qu'elle s'est bien propagée. Si cela ne fonctionne toujours pas, vous pouvez poster une question sur le débordement de la pile et être précis sur la façon dont vous essayez d'accéder, donner un exemple ou un fragment de code pour que d'autres puissent le répliquer. – cherba

+0

C'est ce qui a vraiment fonctionné pour moi: 'mkdir ~/.config/gcloud' puis ' mv ~/.config/gcloud/keyfile.json ~/.config/gcloud/application_default_credentials.json' –

2

Comme solution vous pouvez télécharger la console GCLOUD puis exécuter cette commande sur la console "gcloud auth application-default" se connecter avec le compte gmail auquel le projet accède et ensuite vous aurez accès à google api qui sont activés.

+0

J'ai supprimé le question de votre réponse si seulement la solution est à gauche. Vous devriez utiliser le bouton [Poser une question] (https://stackoverflow.com/questions/ask) si vous avez une nouvelle question (même si c'est une question connexe). – g00glen00b