如何将URL字符串放在json Viber API php中



我是一名尝试学习web开发的新手开发人员。我目前正在做这个项目,网站上的文章会自动分享到一个有氛围的公共聊天中。我面临的问题是,我无法将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);
?>

这将在使用单引号文字时起作用。

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

但是,最好制作一个PHP数组或Object,然后使用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"
}

最新更新