Я пытался следовать этому ответу:
https://stackoverflow.com/a/3331372/1063287
Поэтому в моем документе php у меня были следующие переменные:
$json = file_get_contents("https://gdata.youtube.com/feeds/api/videos/{$video_id}?v=2&alt=json"); $json_data = json_decode($json); $video_title = $json_data->{'entry'}->{'title'}; $video_date = $json_data->{'entry'}->{'published'}; $video_duration = $json_data->{'entry'}->{'media:group'}->{'yt$duration'}; $video_views = $json_data->{'entry'}->{'yt$statistics'}->{'viewCount'}; $video_description = $json_data->{'entry'}->{'content'};
но это дало мне ошибку:
Предупреждение: file_get_contents () [function.file-get-contents]: URL-доступ к файлу отключен в конфигурации сервера в /home/path/to//file.php в строке 12
Предупреждение: file_get_contents ( https://gdata.youtube.com/feeds/api/videos/xx-xxxxxxx?v=2&alt=json ) [function.file-get-contents]: не удалось открыть поток: никакая подходящая обертка не может быть найдено в /home/path/to/file.php в строке 12
Я посмотрел руководство разработчиков здесь:
https://developers.google.com/youtube/2.0/developers_guide_php
и может понять структуру подачи и ввода здесь:
https://developers.google.com/youtube/2.0/developers_guide_protocol_understanding_video_feeds#Understanding_Video_Entries
и нашли несколько решений (один из которых связан с завихрением), но они либо не работали, либо я не знал, являются ли они лучшим методом для использования.
Может ли кто-нибудь рассказать мне, есть ли что-то не так в приведенном выше коде?
Это наиболее вероятно, потому что у вас нет OpenSSL, установленного на вашем сервере. Попробуйте установить его, и если он все еще не работает, вероятно, потому, что вы отключили HTTP-доступ в своем php.ini (установите allow_url_fopen в true)
Лучшее, что я увидел для этого, – Zend_GData_Youtube
в Zend Framework. Это не требует ничего особенного, но это намного проще, чем обычный запрос cURL или JSON!