【问题标题】:How Do I read CloudKit Errors?如何阅读 CloudKit 错误?
【发布时间】:2017-09-14 21:43:23
【问题描述】:

我有一个 php 脚本试图在 CloudKit 数据库中创建记录。

它返回此错误:

object(stdClass)#1 (3) { ["uuid"]=> 字符串(36) "c70072a1-fab6-491b-a68f-03b9056223e1" ["serverErrorCode"]=>
字符串(11)“BAD_REQUEST”[“原因”]=>字符串(62) “BadRequestException:[行:2,列:10] 的意外输入”}

我想这可以准确地告诉我问题出在哪里,但我不知道如何解释它。第 2 行第 10 列在哪里?

我认为它与我在创建记录请求中发送的 JSON 有关。

$url = 'https://api.apple-cloudkit.com/database/1/' . $CONTAINER .    '/development/public/records/modify';
$opDict = '{"operationType": "create",
"record":"Artists",
"fields": {"firstName":{"value":"Mei"}, 
"lastName": {"value":"Chen"}, 
"principalDiscipline": {"value":""},
"secondaryDiscipline":{"value":""}},
"recordName":"Mei Chen"}';

$body = '{"operations":['.$opDict.']}';
echo $body; 

当我检查 $body 的输出时

{“操作”:[{“操作类型”:“创建”,“记录”:“艺术家”, “字段”:{“firstName”:{“value”:“Mei”},“lastName”:{“value”:“Chen”}, “principalDiscipline”:{“价值”:“”}, "secondaryDiscipline":{"value":""}}, "recordName":"Mei Chen"}]}

它通过了 JSON lint,所以我不确定这是一个 JSON 问题。

有人可以向我解释如何解释我从 CloudKit 得到的错误。文档对错误有点含糊。

【问题讨论】:

    标签: php json cloudkit cloudkit-web-services


    【解决方案1】:

    我对 CloudKit 一无所知,但我通过以下示例找到了this documentation page

    {
        "operationType" : "create",
        "record" : {
            "recordType" : "Artist",
            "fields" : {
                "firstName" : {"value" : "Mei"},
                "lastName" : {"value" : "Chen"}
            }
            "recordName" : "Mei Chen"
        },
    }
    

    这绝对不同于您尝试发送的内容,无论是在数据结构方面 (您的record 不是字典)和内容(您没有recordType)。 因此,虽然您的 JSON 在语法上是正确的,但您只是在发送包装在有效 JSON 中的无效内容数据,这很可能是您看到错误消息的原因。

    【讨论】:

    • Bravo Marcin。我完全错过了"record""recordType" 的缺席,这与我正在使用的文档页面相同!现在完美运行。谢谢1000倍。我想我需要更多的睡眠。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-27
    • 1970-01-01
    • 1970-01-01
    • 2013-09-19
    • 2021-09-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多