1

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

它返回此错误:

object(stdClass)#1 (3) { ["uuid"]=> string(36) "c70072a1-fab6-491b-a68f-03b9056223e1" ["serverErrorCode"]=>
string(11) "BAD_REQUEST" ["reason" ]=> string(62) "BadRequestException: [line: 2, column: 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 的输出时

{"operations":[{"operationType": "create", "record":"Artists", "fields": {"firstName":{"value":"Mei"}, "lastName": {"value" :"Chen"}, "principalDiscipline": {"value":""}, "secondaryDiscipline":{"value":""}}, "recordName":"Mei Chen"}]}

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

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

4

1 回答 1

0

我对 CloudKit 完全一无所知,但我找到了这个文档页面,其中包含以下示例:

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

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

于 2017-04-18T21:37:41.543 回答