在PHP中按名称和查询获取CloudKit记录

时间:2015-08-30 01:31:19

标签: cloudkit cloudkit-web-services

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

对于记录/查找,我正在发布到类似的网址:

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

然而,使用cURL和PHP,我似乎无法获得"记录" POST权利。错误消息未提供足够的详细信息Apple未在文档中提供任何样本。 POST记录从CloudKit获取有效响应的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

您可以看到很多示例和明确的解释Here

Post请求应该在JSON中,例如:

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

这是一个执行操作的JSON对象。你要找的是一个查找,这需要recordNamedesiredKeys {}},让desiredKeys为空将会全部给出。所以你的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))                                                                       
);