drvonr6573 2018-11-06 14:44
浏览 59
已采纳

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

I am a newbie developer trying to learn web development. I am currently working on this project where articles from a website get shared automatically to a viber public chat. I am facing this problem where I cannot put the URL in the media. I think this is because its json. I am not sure what I am doing wrong here. I have included.

<?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);

?>
  • 写回答

1条回答 默认 最新

  • dsshsta97935 2018-11-06 14:55
    关注

    This would work as you are using a single quoted literal.

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

    But you are always better to make a PHP array or Object and then use json_encode() to create the JSON String like this

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

    RESULT of echo $jsondata;

    {"auth_token":"4750f56f26a7d2ed-f6b44b76f03d039a-9601b6c9d0d46813",
    "from":"K9\/C2Vz12r+afcwZaexiCg==",
    "type":"url",
    "media":"-1"
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 西南科技大学数字信号处理
  • ¥15 有两个非常“自以为是”烦人的问题急期待大家解决!
  • ¥30 STM32 INMP441无法读取数据
  • ¥15 R语言绘制密度图,一个密度曲线内fill不同颜色如何实现
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥15 pyqt信号槽连接写法
  • ¥500 把面具戴到人脸上,请大家贡献智慧,别用大模型回答,大模型的答案没啥用
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。