1

我在C#中運行Google Translate API。 本地運行在我的電腦上的下一個代碼工作,但網上也引發以下錯誤的服務器上。asp C#應用程序默認憑據不可用

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

「的應用默認憑據不可用它們可如果谷歌Compute Engine上執行。否則,。必須定義環境變量GOOGLE_APPLICATION_CREDENTIALS,指向定義憑據的文件。有關更多信息,請參閱https://developers.google.com/accounts/docs/application-default-credentials

本地只運行安裝Cloud SDK安裝程序,它執行所有設置,不需要在代碼中進行身份驗證。 在服務器上,我應該使用OAuth 2.0還是Service帳戶密鑰?

有人可以幫助我解決這個問題嗎?

編輯:有人可以向我確認,如果有必要有權訪問本地服務器在命令行中運行命令如這裏https://cloud.google.com/storage/docs/authentication?這將是相當荒謬的,而不是隻寫代碼。例如Youtube API不需要本地訪問。

回答

1

對於我的問題,爲了避免本地設置在服務器上,最簡單的答案是使用下面描述的翻譯API的第三種選擇:使用API​​密鑰。 這意味着只需向鏈接中具有API密鑰的端點發送簡單POST即可。

https://cloud.google.com/docs/authentication/#getting_credentials_for_server-centric_flow https://cloud.google.com/docs/authentication/api-keys

+0

「這意味着只需在鏈接中具有API密鑰的端點進行簡單POST即可。」你不需要這樣做 - 你仍然可以使用'TranslationClient',但是調用'TranslationClient.CreateFromApiKey'。 (也就是說,服務帳戶現在比API密鑰更受歡迎。) –

1

它的全部都在errormessage中。您有兩個選項

  • 在運行程序的機器上運行Google Compute Engine並在其中輸入憑據。

  • 使用服務帳戶和設置「GOOGLE_APPLICATION_CREDENTIALS」環境變量引用您的憑證文件

PS(這是一個以.json文件,您可以從谷歌開發者控制檯下載。):執行不要將您的憑證文件存儲在服務器上任何可能被別人訪問的地方!

+0

感謝。不幸的是我不能在這裏運行谷歌雲sdk https://cloud.google.com/sdk/docs/,因爲它是與其他用戶共享的Windows服務器。我可以在線租用Windows服務器實例,但那會花費我每月。你有其他解決方案嗎? –

+0

正如我在第二點中所說的那樣。也可以從Google開發者控制檯下載您的憑據,並在指向該文件的Windows系統上設置Path變量。或者如下所示,您也可以在您的代碼中插入證書。無論哪種方式,你不必安裝雲SDK。 – MatzeBrei

1

您必須下載從

https://console.developers.google.com/iam-admin/serviceaccounts API密鑰下載.P12文件文件後在代碼中使用它

VAR證書=新X509Certificate2(@ 「key3.p12」, 「notasecret」 X509KeyStorageFlags.Exportable); notasecret是默認密碼

+0

謝謝,我沒有在控制檯中看到從哪裏下載P12。或如何使用它。你有文件鏈接嗎? –

1

要生成JSON或PKCS12格式的私鑰:

  1. 公開賽在谷歌雲平臺控制檯憑證列表。 OPEN THE LIST OF CREDENTIALS
  2. 單擊創建憑證。
  3. 選擇服務帳戶密鑰。創建服務帳戶密鑰窗口 已打開。
  4. 單擊服務帳戶下的下拉框,然後單擊新建服務帳戶。
  5. 在名稱中輸入服務帳戶的名稱。
  6. 使用默認的服務帳戶ID或生成一個不同的帳戶ID。
  7. 選擇密鑰類型:JSON或P12。
  8. 點擊創建。將顯示一個創建的服務帳戶 窗口,並自動下載所選密鑰類型 的私鑰。如果您選擇了P12密鑰,則會顯示 私鑰的密碼(「notasecret」)。
  9. 單擊關閉。

你可以找到更多的細節在這裏 https://cloud.google.com/storage/docs/authentication