GOOGLE_APPLICATION_CREDENTIALS error

JSnow picture JSnow · Jul 5, 2017 · Viewed 22.8k times · Source

I am trying to use the google speech API for converting an audio file to text, but facing some problems with the documentation.I have enabled the speech API and created an service account file. I also got the service account credentials activated. Then I wrote the following command to retrieve the authorization token using my service account.

gcloud auth application-default print-access-token

But it is returning this message enter image description here

I don't understand why this is happening because I already have an VM instance created in my Compute Engine. Can anybody explain where am I going wrong with this? Also, is there any other way to authenticate my account and call the google speech API?

Answer

cherba picture cherba · Jul 6, 2017

gcloud credentials and and application default credentials are managed separately. If you activated service account key file this only can be used for gcloud commands but not for application default credentials.

gcloud auth application-default set of commands are there only to manage application default and having nothing to do with commands in gcloud auth.

There a few ways to "activate" application default credentials:

  • Use your user account
    • Run gcloud auth application-default login, or
  • Use service account (preferred)

    • set environment variable GOOGLE_APPLICATION_CREDENTIALS=path/to/your/service_accont_key_file.json
    • copy path/to/your/service_accont_key_file.json to ~/.config/gcloud/application_default_credentials.json`

      • On windows this might be different, run

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

        to get a path to your config directory.

now command like

gcloud auth application-default print-access-token

should work.