Curl 如何仅使用API密钥使用API

Curl 如何仅使用API密钥使用API,curl,google-cloud-platform,google-compute-engine,Curl,Google Cloud Platform,Google Compute Engine,我正在尝试使用curl(不要使用gconsole或sdk)从我的家用计算机上运行计算引擎API。 我可以使用OAuth 2.0访问获取响应,但不能仅使用api密钥获取响应。 我可以只使用API密钥来使用API吗 成功 请求 curl https://compute.googleapis.com/compute/v1/projects/{PROJECT_ID}/zones/{ZONE}/instances/{INSTANCE_ID} 'Authorization: Bearer [ACCESS

我正在尝试使用curl(不要使用gconsole或sdk)从我的家用计算机上运行计算引擎API。 我可以使用OAuth 2.0访问获取响应,但不能仅使用api密钥获取响应。 我可以只使用API密钥来使用API吗

  • 成功
请求

curl https://compute.googleapis.com/compute/v1/projects/{PROJECT_ID}/zones/{ZONE}/instances/{INSTANCE_ID} 'Authorization: Bearer [ACCESS_TOKEN]'
curl https://compute.googleapis.com/compute/v1/projects/{PROJECT_ID}/zones/{ZONE}/instances/{INSTANCE_ID}?key={MY_API_KEY}
  • 失败
请求

curl https://compute.googleapis.com/compute/v1/projects/{PROJECT_ID}/zones/{ZONE}/instances/{INSTANCE_ID} 'Authorization: Bearer [ACCESS_TOKEN]'
curl https://compute.googleapis.com/compute/v1/projects/{PROJECT_ID}/zones/{ZONE}/instances/{INSTANCE_ID}?key={MY_API_KEY}
回应

{
“错误”:{
“代码”:401,
“消息”:“请求缺少所需的身份验证凭据。应为OAuth 2访问令牌、登录cookie或其他有效身份验证凭据。请参阅。”https://developers.google.com/identity/sign-in/web/devconsole-project.",
“错误”:[
{
“消息”:“需要登录。”,
“域”:“全局”,
“原因”:“必需”,
“位置”:“授权”,
“locationType”:“标题”
}
],
“状态”:“未经验证”
}
}

您需要了解公共数据和私有数据之间的区别。公共数据是指不属于任何人的数据,是供公众使用的数据。要访问公共数据,可以使用api密钥

但是,有些方法是私有用户数据,为了访问它们,您需要获得访问该数据的授权

如果您查看该方法的文档,您将看到它

这正是你的错误信息告诉你的

请求缺少所需的身份验证凭据

所以答案是你不能。您不能使用API密钥访问必须经过授权的私人用户数据


它告诉您此方法是用户数据,因此需要授权才能访问和使用它。

Google Compute Engine API不支持API密钥进行授权。我需要使用OAuth 2.0访问专用API。谢谢你+1