asp C# Application Default Credentials are not available

Nicoara Talpes picture Nicoara Talpes · Jul 18, 2017 · Viewed 7.5k times · Source

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.

Answer

live-love picture live-love · Jul 9, 2018

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");