CloudKit 休息 API
CloudKit REST API
我正在尝试使用 CloudKit API 从我的服务器使用服务器到服务器密钥在 public 数据库中创建记录。我正在使用以下 shell 脚本生成 curl 命令。当我 运行 它时,苹果的回应只是说有一个内部错误。
{
"uuid" : "a6415feb-168b-4615-9577-10c5168d7d7c",
"serverErrorCode" : "INTERNAL_ERROR"
}
这是我正在使用的脚本:
#!/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 架构将绘图显示为具有三个属性的自定义类型:
- 日期是 Date/Time
- 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 }
}
我正在尝试使用 CloudKit API 从我的服务器使用服务器到服务器密钥在 public 数据库中创建记录。我正在使用以下 shell 脚本生成 curl 命令。当我 运行 它时,苹果的回应只是说有一个内部错误。
{ "uuid" : "a6415feb-168b-4615-9577-10c5168d7d7c", "serverErrorCode" : "INTERNAL_ERROR" }
这是我正在使用的脚本:
#!/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 架构将绘图显示为具有三个属性的自定义类型:
- 日期是 Date/Time
- 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 }
}