Я хочу разместить последнее видео с моего канала на моем сайте. Это возвращает следующую ошибку:
Warning: file_get_contents(https://www.googleapis.com/youtube/v3/search?order=date&part=snippet&channelId=UCD---------&maxResults=1&key=A---------------): failed to open stream: HTTP request failed! HTTP/1.0 403 Forbidden in C:\xampp\htdocs\inc\latestVideo.php on line 15
Мой код:
<?php $API_key = 'A---------------'; $channelID = 'UCD---------'; $maxResults = 1; $videoList = json_decode(file_get_contents('https://www.googleapis.com/youtube/v3/search?order=date&part=snippet&channelId='.$channelID.'&maxResults='.$maxResults.'&key='.$API_key.'')); if(isset($item->id->videoId)){ echo '<div class="youtube-video"> <iframe width="280" height="150" src="https://www.youtube.com/embed/'.$item->id->videoId.'" frameborder="0" allowfullscreen></iframe> <h2>'. $item->snippet->title .'</h2> </div>'; } ?>
На самом деле вы должны делать curl
curl \ 'https://www.googleapis.com/youtube/v3/channels?part=snippet%2CcontentDetails%2Cstatistics&id=UC_x5XG1OV2P6uZZ5FSM9Ttw&maxResults=1&key=[YOUR_API_KEY]' \ --header 'Authorization: Bearer [YOUR_ACCESS_TOKEN]' \ --header 'Accept: application/json' \ --compressed
Обратите внимание на то, что токен авторизации требуется для заголовка в дополнение к ключу API. Кроме того, идентификатор канала должен быть идентификатором.
Чтобы понять, как выполнить вызов curl из PHP, проверьте это -> php curl: мне нужен простой пост-запрос и повторный просмотр примера страницы
Ссылка на API здесь -> https://developers.google.com/youtube/v3/code_samples/code_snippets?apix_params=%7B%22part%22%3A%22snippet%2CcontentDetails%2Cstatistics%22%2C%22id%22%3A%22UC_x5XG1OV2P6uZZ5FSM9Ttw%22%7D&apix=true
Вы даже можете попробовать в интерактивном редакторе.