Как поместить строку URL в переполнение стека API json Viber

Я начинающий разработчик, пытающийся научиться веб-разработке. В настоящее время я работаю над этим проектом, где статьи с веб-сайта автоматически публикуются в публичном чате viber. Я сталкиваюсь с этой проблемой, когда не могу разместить URL в СМИ. Я думаю, что это потому, что это JSON. Я не уверен, что я делаю не так здесь. Я включил.

<?php

$Tid = "-1";
if (isset($_GET['id'])) {
$Tid = $_GET['id'];
}

$url = 'https://chatapi.viber.com/pa/post';

$jsonData='{
"auth_token":"4750f56f26a7d2ed-f6b44b76f03d039a-9601b6c9d0d46813",
"from": "K9/C2Vz12r+afcwZaexiCg==",
"type":"url",
"media": "$thisID"// I want to use $thisID as shown above. But when I
do so this error appears [ {"status":3,"status_message":"'media' field value is not a valid url."} ]

// When I use any full form url like https://google.com it works fine
}';

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
$result = curl_exec($ch);
curl_close($ch);

?>

0

Решение

Это будет работать, если вы используете литерал в одинарных кавычках.

"media": "' . $thisID . '"

Но вам всегда лучше сделать массив или объект PHP, а затем использовать json_encode() создать строку JSON, как это

$obj = new stdClass;
$obj->auth_token = "4750f56f26a7d2ed-f6b44b76f03d039a-9601b6c9d0d46813";
$obj->from = "K9/C2Vz12r+afcwZaexiCg==";
$obj->type = 'url';
$obj->media = $thisID;

$jsondata = json_encode($obj);

Результат echo $jsondata;

{"auth_token":"4750f56f26a7d2ed-f6b44b76f03d039a-9601b6c9d0d46813",
"from":"K9\/C2Vz12r+afcwZaexiCg==",
"type":"url",
"media":"-1"}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]