【问题标题】:Accessing Google Datastore or Datastore API from PHP App Engine从 PHP App Engine 访问 Google Datastore 或 Datastore API
【发布时间】:2015-10-09 18:38:54
【问题描述】:

我正在尝试在 Google Cloud 环境中使用来自 PHP App Engine 的 Google Datastore。该过程似乎不像 Cloud Storage 那样无缝,因此我将使用 Datastore REST API。

文档中有一个地方可以向 Datastore 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}

当我使用来自 Google Cloud“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} 应该是什么。

如何解决此问题并在没有 OAuth 的情况下访问 Datastore API?

谢谢。

【问题讨论】:

    标签: php google-app-engine google-cloud-datastore


    【解决方案1】:

    我建议你使用这个库从 PHP 访问 Datastore

    https://github.com/tomwalder/php-gds

    • 有文档
    • 它支持本机协议缓冲区访问 - 不需要 REST 或 JSON 服务中使用的身份验证周期(即启动和运行更容易和更快
    • 以及用于远程使用的 JSON API
    • 支持本地(开发)数据存储

    其他几个 SO 问题参考:

    【讨论】:

    • 免责声明:我是作者!
    • 谢谢汤姆,其实我前段时间偶然发现了这个,但我不知道如何安装它。你能为不使用 Composer 的人提供一些说明吗?
    • 谢谢。非常感激。只是没有耐心学习更多技术只是为了安装一个 PHP 脚本
    【解决方案2】:

    Datastore API 需要经过身份验证的用户才能进行所有调用,因此您需要使用 OAuth。

    您可以使用 PHP 的 API 客户端库为您处理身份验证详细信息: https://developers.google.com/api-client-library/php/guide/aaa_overview

    API 密钥机制适用于不需要经过身份验证的用户的 API。

    【讨论】:

    • 谢谢。您引用的页面上的链接返回 404 错误。我想我会在这一点上探索 Parse。我想将它保留在 Google 家族中,但这对于简单的键值存储来说压力太大了。
    猜你喜欢
    • 2015-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-12
    相关资源
    最近更新 更多