2

我有一个使用 CloudKit 的应用程序,我正在尝试构建一个简单的 Web 界面来从 CloudKit 中提取数据,以便用户可以查看信息。登录工作正常,但我找不到任何关于如何构造记录/查询和记录/查找请求的示例。

对于记录/查找,我将发布到类似的 URL:

https://api.apple-cloudkit.com/database/1/iCloud.com.[mycontainer]/development/private/records/lookup?ckAPIToken=[myToken]&ckSession=[myAuthenticatedSession]

但是,使用 cURL 和 PHP,我似乎无法正确获取“记录”POST。错误消息没有提供足够的详细信息 Apple 没有在文档中提供任何示例。POST 记录以从 CloudKit 获得有效响应的正确方法是什么?

4

1 回答 1

2

你可以在这里看到很多例子和清晰的解释。

Post 请求应该在JSON例如:

{ 
    "operationType":"update",
    "record" : {
        "recordType":"Artist",
        "fields": {
             "firstname" : {"value" : "Chen"},
        }
        "recordName" : "Mei Chen"
    },
}

这是一个执行操作的 JSON 对象。您正在寻找的是查找,这需要recordName并且可选地desiredKeysdesiredKeys留空将全部提供。所以你的 json 看起来像:

{ 
    "recordName":"Mei Chen"
}

在 PHP 中,你可以很容易地用数组来做到这一点

$request = array();
$request['recordName'] = "Mei Chen";
$request_json = json_encode($request);

使用你的$request_json你可以比使用 PHP curl 发布这个,例如:

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");                                                                     
curl_setopt($ch, CURLOPT_POSTFIELDS, $request_json);                                                                  
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);                                                                      
curl_setopt($ch, CURLOPT_HTTPHEADER, array(                                                                          
    'Content-Type: application/json',                                                                                
    'Content-Length: ' . strlen($request_json))                                                                       
);            
于 2015-09-22T14:40:39.770 回答