我試圖在工作中使用Google雲端的自然語言API,並且我相信我的企業防火牆阻止了Python和谷歌雲之間的通信。對企業防火牆背後的谷歌雲進行身份驗證
進入終端以下後:
gcloud auth application-default login
我的瀏覽器打開登錄到我的谷歌帳戶成功。我登錄後,但是,我得到
ERROR: There was a problem with web authentication. Try running a
gain with --no-launch-browser.
ERROR: (gcloud.auth.application-default.login) Could not reach th
e login server. A potential cause of this could be because you ar
e behind a proxy. Please set the environment variables HTTPS_PROX
Y and HTTP_PROXY to the address of the proxy in the format "proto
col://address:port" (without quotes) and try again.
Example: HTTPS_PROXY=https://192.168.0.1:8080
我相信我需要聯繫我的IT部門爲例外添加到我們的防火牆。有誰知道谷歌雲自然語言處理API的地址/端口是什麼?
您對使用服務帳戶的建議很奏效,但是您能否詳細說明「...然後用URL末尾的?key = api-key命中HTTP端點? 我已經成功地在谷歌雲控制檯中生成了一個API密鑰,現在我應該去我的終端並改變一些東西?或者這是一個Python設置? – Lee88
@ Lee88 api密鑰的使用方式是在按照我描述的方式敲擊HTTP/REST端點時將api密鑰添加爲URL參數。例如,您可以使用常規HTTP客戶端程序包(如請求來擊中端點並將API密鑰設置爲URL參數)。但是,通常你會使用Pyton客戶端庫。如果你使用的是google-api-python-client(舊的通用目錄),你可以在service.build()中使用developerKey = api-key參數。如果你使用google-cloud-python(現代客戶端),它不支持API密鑰。爲什麼?因爲API密鑰並不是真正的好主意,所以他們很沮喪。 –
如果您獲得最好的服務帳戶來堅持使用它們,因爲它們擁有最細緻的訪問控制,並且最不可能讓您頭疼。如果你只是亂搞curl或什麼的,API密鑰是最有用的。 –