如何解决CloudKit REST API
我正在尝试使用 CloudKit API 在我的服务器的公共数据库中创建记录,使用服务器到服务器的密钥。我正在使用以下 shell 脚本来生成 curl 命令。当我运行它时,Apple 的响应只是说存在内部错误。
{ "uuid": "a6415feb-168b-4615-9577-10c5168d7d7c",“服务器错误代码”:“内部错误” }
这是我正在使用的脚本:
#!/bin/sh
subpath=/database/1/iCloud.com.mycompany.myapp/development/public/records/modify
date=`date -u +"%Y-%m-%dT%H:%M:%SZ"`
body='
{
"operations": [
{
"operationType": "forceReplace","record": {
"recordType": "Drawing","fields": {
"date": "2021-01-09T12:00:00Z","numbers": [14,26,38,45,46,13],"type": 1
}
},"recordName": "powerball20210109"
}
],"atomic": true
}
'
encoded=`echo $body | base64`
signature="$date:$encoded:$subpath"
curl -X POST https://api.apple-cloudkit.com$subpath \
-H 'Content-Type: application/json' \
-H 'X-Apple-Cloudkit-Request-KeyID: myKeyHere' \
-H "X-Apple-CloudKit-Request-ISO8601Date: $date" \
-H "X-Apple-CloudKit-Request-SignatureV1: $signature" \
-d "$body"
CloudKit 架构将绘图显示为具有三个属性的自定义类型:
- 日期是日期/时间
- numbers 是一个 Int(64)(列表)
- 类型是一个 Int(64)
解决方法
我可以看到一些问题。所有字段都需要有一个带有 value
属性的对象。此外,日期以 1970 年 1 月 1 日以来的毫秒格式作为整数保存到 CloudKit。
我从未尝试过保存这样的整数数组,但看起来不错。
试试这个:
"fields":{
"date": { "value" : 1610193600000 },"numbers": { "value" : [14,26,38,45,46,13] },"type": { "value" : 1 }
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。