我非常努力地输出 Azuracast json 查询,但我不能,我是一个 php 人,我不太明白。教程也没有用。
我得到了我的令牌和一切。我只想将专辑名称、歌曲名称和艺术家输出到字符串中。就是这样。我只想制作我的小自定义播放器,除此之外其他一切都很好。你们可以检查我的代码并帮助我吗?我知道这个问题已经得到了回答,但它对我没有帮助。它总是在我的网站上输出任何内容。
我的 api 链接:这里
//$url = "https://91.247.70.40/api/nowplaying/2.json";
//$data = file_get_contents($url);
//$infos = json_decode($data, true);
//$nazwa = $infos->cache;
//echo $nazwa;
function jwt_request($token, $post) {
$ch = curl_init('https://91.247.70.40/api/nowplaying/2');
header('Content-Type: application/json');
$post = json_encode($post);
$authorization = "Authorization: Bearer ".$token;
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json' , $authorization ));
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS,$post);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$result = curl_exec($ch);
curl_close($ch);
return json_decode($result, true);
}
echo $result->cache;
你可以看到我尝试了两种方法。没有一个工作。我已经隐藏了令牌。它设置正确,我知道。
您似乎在这里遇到了多个问题。第一个是您的 API 在 HTTPS 上提供,但证书无效/自签名证书。file_get_contents
并且curl
默认情况下会失败对具有不受信任证书的页面的请求。首先,您应该设置一个 Let's Encrypt 证书,如文档中所示。
然后您的第一个代码将正确返回解码的 JSON 数据。但是您应该删除.json
URL 末尾的 ,因为这不是您请求的文件,而是 API 路由。在那里,您尝试访问解码数据,就好像它是一个对象,但json_decode($data, true)
返回一个关联数组,因此您需要像这样访问数据$infos['cache']
。如果您想从需要访问这些字段的数据中获取专辑名称、歌曲名称和艺术家:$infos['now_playing']['song']['album']
、$infos['now_playing']['song']['title']
和$infos['now_playing']['song']['artist']
。
修复证书错误后,您的第二个代码示例将不起作用,因为该/api/nowplaying/{station_id}
路由是 GET 路由,但您将 CURL 请求定义为 POST 请求。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句