【问题标题】:Error on lookup for Google Cloud Datastore查找 Google Cloud Datastore 时出错
【发布时间】:2014-01-26 18:04:00
【问题描述】:

目前我正在使用 Windows 8.1 上的 Google App Engine Launcher(版本 1.8.8)在 php 环境中测试 Google Cloud Datastore。我正在使用来自 GitHub (https://github.com/google/google-api-php-client) 的 google-api-php-client 进行身份验证和调用服务。

目的是通过调用远程服务在本地测试代码

如果我尝试通过客户端提供的类将数据插入数据存储区,则操作成功。

但是,如果我尝试通过查找调用执行相同的操作,则会收到以下错误(第 75 行的 google-api-php-client/src/Google/Http/REST.php 处的 Google_Service_Exception):

Error calling POST https://www.googleapis.com/datastore/v1beta2/datasets/TESTAPP/lookup: (400) app s~TESTAPP cannot access app TESTAPP's data

如果正确插入数据,则不是身份验证问题;那么,我哪里错了?

(对不起我的英语)

【问题讨论】:

  • 库更新,代码可见here

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


【解决方案1】:

您似乎在查找请求的键中使用了错误的 dataset_id。您应该保留 key.partition_id.dataset_id 未设置(或者更好的是,保留所有 key.partition_id 未设置)。

【讨论】:

    【解决方案2】:

    如果你发布你的代码会很有帮助:)

    最明显的检查是您使用了正确的应用 ID。您可以从开发者控制台获取应用 ID。

    还要确保从 GIT 中获取最新的 PHP 客户端源代码。过去几天进行了一些修复。

    【讨论】:

    • 库更新,代码可见here
    【解决方案3】:

    您必须手动编辑库代码并编写将从 AppId 中删除 s~ 的代码。这不应该存在,这就是您的代码失败的原因。你可以写信给谷歌,他们在库中也有错误。

    【讨论】:

    • 我不确定更改库是正确的选择。如果在本次讨论结束时我将我的问题视为库中的错误,我将在 github 上报告它
    • 我从来没有写过更改库是一个好的选择,但是等待新的库版本是最快的。如果您可以手动指定 AppId ,那么它应该可以解决问题。要测试您的服务器如何工作,请在您的 AppId 某处记录,您会看到开头是否有 s~。
    猜你喜欢
    • 2015-08-21
    • 2016-11-16
    • 2019-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-19
    • 2018-01-22
    • 1970-01-01
    相关资源
    最近更新 更多