YouTube LiveChatMessages API返回null

时间:2019-05-02 08:59:07

标签: php youtube-api youtube-data-api youtube-livestreaming-api

我正在尝试使用GET请求从实时聊天中获取消息。

$json_result = file_get_contents("https://www.googleapis.com/youtube/v3/liveChat/messages?liveChatId=$videoId&part=snippet&key=$api_key");
// $videoId и $api_key true, there are no errors.
echo '<pre>';
var_dump(json_decode($json_result));
echo '</pre>';

答案是NULL,告诉我是什么错误,或者我可以从YouTube广播聊天中获取消息的方法是什么?

1 个答案:

答案 0 :(得分:0)

也许对某人有用,通过cURL而不是file_get_contents解决了这个问题。

$curl_handle=curl_init();
curl_setopt($curl_handle, CURLOPT_URL,"https://www.googleapis.com/youtube/v3/liveChat/messages?liveChatId=$LiveChatId&part=snippet%2CauthorDetails&maxResults=200&key=$api_key");
curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl_handle, CURLOPT_USERAGENT, 'JeezLand API');
$json_results = curl_exec($curl_handle);
curl_close($curl_handle);
$json_decode_results = json_decode($json_results);
foreach($json_decode_results as $json_decode_result){
    foreach($json_decode_result as $result){
        /* echo '<pre>';
            var_dump($result);
        echo '</pre>'; */
        echo $result->authorDetails->displayName.' -> '.$result->snippet->displayMessage.'<br />';
    }
}

特别感谢Gert de Pagter为解决问题提供的帮助。