正在按名称获取 CloudKit 条记录并在 PHP 中查询
Fetching CloudKit Records By Name and Query in PHP
我有一个使用 CloudKit 的应用程序,我正在尝试构建一个简单的 Web 界面以从 CloudKit 中提取数据,以便用户可以查看信息。登录工作正常,但我找不到任何关于如何构建 records/query 和 records/lookup.
请求的示例
对于records/lookup,我POST正在使用类似的URL:
https://api.apple-cloudkit.com/database/1/iCloud.com.[mycontainer]/development/private/records/lookup?ckAPIToken=[myToken]&ckSession=[myAuthenticatedSession]
但是,使用 cURL 和 PHP,我似乎无法正确地得到 "records" POST。错误消息没有提供足够的细节,Apple 没有在文档中提供任何示例。 POST 记录以从 CloudKit 获得有效响应的正确方法是什么?
你可以看到很多例子和清晰的解释Here。
Post 请求应该在 JSON
例如:
{
"operationType":"update",
"record" : {
"recordType":"Artist",
"fields": {
"firstname" : {"value" : "Chen"},
}
"recordName" : "Mei Chen"
},
}
这是一个要进行操作的JSON对象。您正在寻找的是查找,这需要 recordName
和可选的 desiredKeys
,将 desiredKeys
留空将提供所有这些。所以你的 json 看起来像:
{
"recordName":"Mei Chen"
}
在 PHP 中,您可以使用数组轻松做到这一点
$request = array();
$request['recordName'] = "Mei Chen";
$request_json = json_encode($request);
使用 $request_json
你可以比 post 使用 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))
);
我有一个使用 CloudKit 的应用程序,我正在尝试构建一个简单的 Web 界面以从 CloudKit 中提取数据,以便用户可以查看信息。登录工作正常,但我找不到任何关于如何构建 records/query 和 records/lookup.
请求的示例对于records/lookup,我POST正在使用类似的URL:
https://api.apple-cloudkit.com/database/1/iCloud.com.[mycontainer]/development/private/records/lookup?ckAPIToken=[myToken]&ckSession=[myAuthenticatedSession]
但是,使用 cURL 和 PHP,我似乎无法正确地得到 "records" POST。错误消息没有提供足够的细节,Apple 没有在文档中提供任何示例。 POST 记录以从 CloudKit 获得有效响应的正确方法是什么?
你可以看到很多例子和清晰的解释Here。
Post 请求应该在 JSON
例如:
{
"operationType":"update",
"record" : {
"recordType":"Artist",
"fields": {
"firstname" : {"value" : "Chen"},
}
"recordName" : "Mei Chen"
},
}
这是一个要进行操作的JSON对象。您正在寻找的是查找,这需要 recordName
和可选的 desiredKeys
,将 desiredKeys
留空将提供所有这些。所以你的 json 看起来像:
{
"recordName":"Mei Chen"
}
在 PHP 中,您可以使用数组轻松做到这一点
$request = array();
$request['recordName'] = "Mei Chen";
$request_json = json_encode($request);
使用 $request_json
你可以比 post 使用 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))
);