Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

asp C# Application Default Credentials are not available

I am running Google Translate API in C#. Running locally on my computer the next code works, but online on a server it throws the following error:

using Google.Cloud.Translation.V2;
TranslationClient client = TranslationClient.Create();
var response = client.TranslateText(sentence, targetLanguage, sourceLanguage: sourceLanguage);

"The Application Default Credentials are not available. They are available if running in Google Compute Engine. Otherwise, the environment variable GOOGLE_APPLICATION_CREDENTIALS must be defined pointing to a file defining the credentials. See https://developers.google.com/accounts/docs/application-default-credentials for more information."

Locally this runs just by installing Cloud SDK Installer which does all the settings, there is no need for authentication in code. On the server, should I use instead OAuth 2.0 or Service account keys ?

Can someone assist me on how to solve this?

EDIT: Can someone confirm to me if it is necessary to have access to the local server to run commands in command line like here https://cloud.google.com/storage/docs/authentication ? This would be pretty ridiculous, instead of just writing code. For example Youtube API does not require local access.

like image 926
Nicoara Talpes Avatar asked Jul 18 '17 11:07

Nicoara Talpes


2 Answers

Follow directions to get json file:

https://cloud.google.com/translate/docs/reference/libraries

Then run this code first:

System.Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "c:\mypath\myfile.json");
like image 80
live-love Avatar answered Sep 23 '22 06:09

live-love


To generate a private key in JSON or PKCS12 format:

  1. Open the list of credentials in the Google Cloud Platform Console. OPEN THE LIST OF CREDENTIALS
  2. Click Create credentials.
  3. Select Service account key. A Create service account key window opens.
  4. Click the drop-down box below Service account, then click New service account.
  5. Enter a name for the service account in Name.
  6. Use the default Service account ID or generate a different one.
  7. Select the Key type: JSON or P12.
  8. Click Create. A Service account created window is displayed and the private key for the Key type you selected is downloaded automatically. If you selected a P12 key, the private key's password ("notasecret") is displayed.
  9. Click Close.

You can find more details here https://cloud.google.com/storage/docs/authentication

like image 43
Amr Avatar answered Sep 26 '22 06:09

Amr