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

标签 cloudkit cloudkit-web-services

我有一个使用 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 获取有效响应的正确方法是什么?

最佳答案

你可以看到很多例子和清晰的解释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 您可以使用 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 - 在 PHP 中按名称和查询获取 CloudKit 记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32292361/

相关文章:

iOS:对于用户来说,CloudKit 登录是什么样的?

ios - 在 iOS 7 设备的 CKContainer.defaultContainer() 处中断

android - 我可以使用 CloudKit 网络服务或类似的东西访问标准的 iOS 笔记和提醒数据吗?

ios - 如何使用 swift 上传带有云工具包的图像?

ios - 将核心数据上传到 cloudkit

swift - 如何显示 CloudKit 中最接近今天日期的帖子?

android - 从 Android 访问 CloudKit?

php - 如何使用 CloudKit Web 服务创建 CKReference?

ruby-on-rails - 不确定如何生成 ECDSA 签名,给定私钥和消息