Authentication 使用简单API密钥格式化对Google云的HTTPS调用
我正在尝试从嵌入式设备连接到谷歌云,因此我无法访问OAuth身份验证。文档显示我可以使用简单的API键进行连接。我创建了一个简单的API密钥,但在使用它时遇到了问题 我可以在上成功地测试API函数,但在这个开发人员的站点上,我没有输入我的API密钥(可能是在后台自动生成的) 当我使用curl尝试相同的命令时,我得到一个401错误: 请求缺少必需的身份验证凭据。应为OAuth 2访问令牌、登录cookie或其他有效的身份验证凭据。请参阅“,“状态”:“未经身份验证” 但是我直接从online API tester复制GET或POST命令,并在末尾添加密钥: curl-X POST-d'{“policy”:{“bindings”:[{“role”:“roles/editor”,“members”:[“servicecomport:charge….]}]}Authentication 使用简单API密钥格式化对Google云的HTTPS调用,authentication,oauth,google-cloud-platform,Authentication,Oauth,Google Cloud Platform,我正在尝试从嵌入式设备连接到谷歌云,因此我无法访问OAuth身份验证。文档显示我可以使用简单的API键进行连接。我创建了一个简单的API密钥,但在使用它时遇到了问题 我可以在上成功地测试API函数,但在这个开发人员的站点上,我没有输入我的API密钥(可能是在后台自动生成的) 当我使用curl尝试相同的命令时,我得到一个401错误: 请求缺少必需的身份验证凭据。应为OAuth 2访问令牌、登录cookie或其他有效的身份验证凭据。请参阅“,“状态”:“未经身份验证” 但是我直接从online AP
我错过了什么 由于您提供的信息有限,很难确定根本原因,但以下是一些可能的原因:
curl
的URL参数中使用引号。这可能导致shell以不同的方式解释URL中的某些字符。像&
这样的字符通常是罪魁祸首,尽管它们似乎不是您粘贴的URL的一部分
curl -X POST -d '{"policy":{"bindings":[{"role":"roles/editor","members":["serviceAccount:charge...."]}]}}' 'https://pubsub.googleapis.com/v1/projects/pl..../subscriptions/arriveHomeSub:setIamPolicy?key=AIz'
键
参数传递给RESTAPI
访问令牌的生存期非常有限,可能需要定期刷新。如果您的应用程序需要定期刷新访问令牌,请考虑以安全的方式将刷新令牌存储在应用程序中。我正在从谷歌云API管理器中生成API密钥。文档中说,只要我了解安全性不是很好,我就可以将此密钥用于嵌入式应用程序。但到目前为止,这对我不起作用。我将尝试OAuth 2.0身份验证,但我认为我在如何在我的应用程序中存储私钥(超长代码)方面遇到了问题(我正在Arduino中编程)。我正在为服务帐户尝试OAuth,遇到了另一个错误,但似乎正在取得进展。请看这篇帖子:@MarkPeterson-我也在那里回复过。如果你认为答案有帮助,请接受/投赞成票。