我试图在工作中使用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密钥是最有用的。 –