Man*_*Yau 1 google-cloud-datastore google-cloud-platform
我试图通过其REST Api访问Google的数据存储。它说他们允许通过API密钥进行身份验证。但是,似乎无法在任何地方使用它。我复制了从他们的Try this API页面生成的摘录。
curl --request POST \
'https://datastore.googleapis.com/v1/projects/PROJECT_ID:runQuery?key=[YOUR_API_KEY]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"query":{"filter":{"compositeFilter":{"op":"AND","filters":[{"propertyFilter":{"property":{"name":"id"},"op":"EQUAL","value":{"stringValue":"ID"}}}]}},"kind":[{"name":"NAME"}]},"partitionId":{"namespaceId":"NAMESPACE_ID","projectId":"PROJECT_ID"}}' \
--compressed
Run Code Online (Sandbox Code Playgroud)
但是它一直向我返回401错误。
{
"error": {
"code": 401,
"message": "Request is missing required authentication credential. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.",
"status": "UNAUTHENTICATED"
}
}
Run Code Online (Sandbox Code Playgroud)
似乎要求我改用OAuth,但这不是他们的文档所说的。任何人都经历过类似的事情吗?
您使用的API密钥不正确。
该链接详细说明了哪些服务支持API密钥。Cloud Datastore不是其中之一。
您要使用从服务帐户凭据派生的访问令牌。
查看此文档。
生成访问令牌的步骤:
client_email,private_key和private_key_id。access_token。access_token代替API密钥。互联网上有各种语言的示例。该链接将帮助您入门。该过程看起来很复杂,但是确实如此,但是一旦您理解它,生成访问令牌就很容易了,并且可以重复使用直到它们到期(通常由您控制60分钟)。
Google Cloud Storage身份验证上的此文档与Cloud Datastore相同。关键是要理解“授权:承载”,这是您需要在curl请求中包括的标头。
| 归档时间: |
|
| 查看次数: |
360 次 |
| 最近记录: |