У меня есть скрипт php, который пытается создать запись в базе данных CloudKit.
Возвращает эту ошибку:
object (stdClass) # 1 (3) {[«uuid»] => string (36)
«c70072a1-fab6-491b-a68f-03b9056223e1» [«serverErrorCode»] =>
строка (11) «BAD_REQUEST» [«причина»] => строка (62)
«BadRequestException: неожиданный ввод в [строка: 2, столбец: 10]»}
Я предполагаю, что это точно говорит мне, в чем проблема, но я не знаю, как это интерпретировать. Где строка 2 и столбец 10?
Я думаю, что это связано с JSON, который я посылаю в запросе на создание записи.
$url = 'https://api.apple-cloudkit.com/database/1/' . $CONTAINER . '/development/public/records/modify';
$opDict = '{"operationType": "create",
"record":"Artists",
"fields": {"firstName":{"value":"Mei"},
"lastName": {"value":"Chen"},
"principalDiscipline": {"value":""},
"secondaryDiscipline":{"value":""}},
"recordName":"Mei Chen"}';
$body = '{"operations":['.$opDict.']}';
echo $body;
Когда я проверяю вывод из $ body
{«operations»: [{«operationType»: «create», «record»: «Artists»,
«fields»: {«firstName»: {«value»: «Mei»}, «lastName»: {«value»: «Chen»},
«PrincipalDiscipline»: {«value»: «»},
«secondDiscipline»: {«value»: «»}}, «recordName»: «Mei Chen»}]}
он передает JSON lint, поэтому я не уверен, что это проблема JSON.
Может кто-нибудь объяснить мне, как интерпретировать ошибку, которую я получаю от CloudKit. Документы немного расплывчаты на ошибках.
Я не имею ни малейшего понятия о CloudKit, но я нашел эта страница документации с помощью следующего примера:
{
"operationType" : "create",
"record" : {
"recordType" : "Artist",
"fields" : {
"firstName" : {"value" : "Mei"},
"lastName" : {"value" : "Chen"}
}
"recordName" : "Mei Chen"},
}
который определенно отличается от того, что вы пытаетесь отправить, как с точки зрения структуры данных
(ваш record
это не словарь) и содержание (у вас нет recordType
).
Таким образом, в то время как ваш JSON синтаксически корректен, вы просто отправляете недопустимые данные содержимого, завернутые в допустимый JSON, что, скорее всего, является причиной появления сообщения об ошибке.
Других решений пока нет …