Я использую Laravel Framework и интегрирован с базой данных Firebase. Я пытаюсь опубликовать данные в Firebase следующим образом, но они не работают.
$url = "https://test.firebaseio.com/test_api/types.json";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "id=6");
$jsonResponse = curl_exec($ch);
if(curl_errno($ch))
{
echo 'Curl error: ' . curl_error($ch);
}
curl_close($ch);
Я не в чем проблема. А также я попытался сделать это с помощью почтальона, и он говорит следующее сообщение об ошибке. "error": "Invalid data; couldn't parse JSON object, array, or value. Perhaps you're using invalid characters in your key names."
Как мне это решить?
Попробуйте следующий
$data = '{"id": "6"}';
$url = "https://test.firebaseio.com/test_api/types.json";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/plain'));
$jsonResponse = curl_exec($ch);
if(curl_errno($ch))
{
echo 'Curl error: ' . curl_error($ch);
}
curl_close($ch);
Firebase принимает объект JSON, и вы должны опубликовать $data
как объект JSON. И вы можете использовать Content-Type: application/x-www-form-urlencoded
или же Content-Type: text/plain
id = 6 не является допустимым JSON. {«id»: 6}, вероятно, вы имели в виду.
пытаться
$json='{"id":6}';
curl_setopt_array($ch, array(
CURLOPT_POST=>1,
CURLOPT_HTTPHEADER=>array(
'Content-Type: application/json',
'Content-Length: ' . strlen($json)
),
CURLOPT_POSTFIELDS=>$json
));
РЕДАКТИРОВАТЬ: или если сайт принимает обычные кодировки POST multipart / form-data / application / x-www-form-urlencoded, вы, вероятно, захотите, для кодирования multipart / form-data:
curl_setopt($ch, CURLOPT_POSTFIELDS, array('id'=>6));
для приложения / кодировка x-www-form-urlencoded:
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(array('id'=>6)));