我试图使用谷歌数据存储从PHP应用引擎在谷歌云环境。这个过程似乎不像云存储那样无缝,所以我将使用Datastore REST API。
在文档中有一个地方,你可以对数据存储API做一个测试请求:https://cloud.google.com/datastore/docs/apis/v1beta2/datasets/lookup#try-it
我遇到的问题是我想在没有OAuth的情况下做到这一点(在上面的链接中有一个选项)。但是,当我这样做时,我得到以下错误:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "required",
"message": "Login Required",
"locationType": "header",
"location": "Authorization"
}
],
"code": 401,
"message": "Login Required"
}
}
从请求详细信息中,我看到了以下HTTP请求签名:POST to https://www.googleapis.com/datastore/v1beta2/datasets/MY_PROJECT_ID/lookup?key={YOUR_API_KEY}
.
当我使用我的服务器API密钥从谷歌云"API和认证"凭据,我得到这个:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "authError",
"message": "HTTP Basic Authentication is not supported for this API",
"locationType": "header",
"location": "Authorization"
}
],
"code": 401,
"message": "HTTP Basic Authentication is not supported for this API"
}
}
我不太确定{YOUR_API_KEY}应该是在这种情况下,如果它不是服务器密钥。
我如何解决这个问题,并访问数据存储API没有OAuth?
谢谢。
我建议您使用这个库从PHP访问数据存储
https://github.com/tomwalder/php-gds- 有文档
- 它支持本地协议缓冲区访问-不需要在REST或JSON服务中使用的身份验证周期(即。)
- 和远程使用的JSON API 支持本地(开发)数据存储
其他几个SO问题参考:
- 可以谷歌云数据存储访问php?
- 如何连接谷歌应用引擎(PHP)与云数据存储?
数据存储API要求所有调用都需要一个经过身份验证的用户,因此您需要使用OAuth。
你可以使用PHP的API客户端库来为你处理认证细节:https://developers.google.com/api-client-library/php/guide/aaa_overview
API密钥机制适用于不需要身份验证用户的API。