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

How to Create CKReference using CloudKit Web Services?

我已经非常成功地使用了 CK Web 服务,但我对如何创建 CKReference 感到困惑。

我看过这里的文档 re Reference Dictionaries,但无法使这样的词典工作。

我的 php 生成以下操作字典:

{"operations":[
{"operationType": "create",
"record": { "recordType": "Works",
     "fields": {
          "type":{"value":"Painting"},
          "title": {"value":"test"},
          "date": {"value":"10/29/1965"},
          "height": {"value":"21"},
          "length": {"value":"21"},
          "width": {"value":"21"},
          "runningTime": {"value":""},
          "materials": {"value":"test"},
          "description":{"value":"test"},
          "saleStatus": {"value":"yes"},
          "tos":{"value":"yes"},
          "artist": {"value":"Peter Wiley"},
          "artistRecordName":{"value":"286CB3BF-69CC-4DD3-9233-CC80E5FA95D4"},
          "artistRecordRef": {
               "recordName": {"value":"286CB3BF-69CC-4DD3-9233-CC80E5FA95D4"},         
               "zoneID":{"zoneName": {"value":"_defaultZone"}},
               "action": {"value":"NONE"}
          },
          "subject":{"value":""},
          "metaType":{"value":"Fine Art"},
          "userRecordName":{"value":"30C54AD8-3701-428C-99B7-0393DD2DAB45"},
          "userRole":{"value":"Artist"},
          "status":{"value":"P"}
     }
} }
]}

此请求returns错误:

BAD_REQUEST" [1]=> string(62) "BadRequestException: Unexpected input at [line: 26, column: 3]

如果我删除 "artistRecordRef" 请求将正常工作。

我相信对于更有经验的人来说,答案是显而易见的。有人能看出哪里出了问题吗?

好的,我在这里找到了答案,但是已经发布给可能有问题的其他人,因为答案不容易找到。

这是有效的:

"artistRecordRef": {"value": {
                "recordName": "'.$artistRecordName.'",
                "action": "NONE"
            }
        },

参考词典必须作为值传递。我没有明白这一点,Apple 文档中的示例也没有很好地记录它(至少在我能找到的那些文档中)。

参见: