Я хотел бы использовать метод vimeo.videos.getInfo, чтобы получить информацию о приватном видео, загруженном в мою учетную запись. Я буду использовать это приложение только на одном веб-сайте, поэтому я жестко кодирую токен доступа в код.
Я использую официальную библиотеку PHP для Vimeo API ( https://github.com/vimeo/vimeo.php ).
Итак, вот что я до сих пор …
$vimeo = new Vimeo($apiKey, $apiSecret, $accessToken);
Все хорошо. Сначала, когда я попробовал пример кода из примера:
$user_data = $vimeo->request('/me'); print_r($user_data);
Это вернуло пустой массив:
Array ( [body] => [status] => 0 [headers] => Array ( ) )
Я заметил, что они упомянули, возвращает ли массив пустой, вероятно, что-то связано с неверным сертификатом SSL. Прямо сейчас, я просто развиваюсь на localhost, поэтому я устанавливаю CURLOPT_SSL_VERIFYPEER в false (благодаря этим инструкциям: http://unitstep.net/blog/2009/05/05/using-curl-in-php-to-access -https-ssltls-protected-sites / ). Я добавил его к массиву в строке 112 в файле vimeo.php:
$curl_opt_defaults = array( CURLOPT_HEADER => 1, CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 30, CURLOPT_SSL_VERIFYPEER => false);
Как только я это сделал, я смог вернуть информацию об аутентифицированном пользователе.
Но это все равно возвращает пустой массив:
$params = array( 'video_id' => 95307197 ); $videos = $vimeo->request('vimeo.videos.getInfo', $params); print_r($videos);
То же самое с любыми методами, которые я пытаюсь установить там. Я неправильно делал CURLOPT_SSL_VERIFYPEER или что-то не так с моим синтаксисом?
Я подумал, что могу поделиться своим решением, которое заняло у меня некоторое время, чтобы разобраться. Я также хотел получить доступ к приватным видеоданным, а именно к числу pf времени воспроизведения видео. Вот мои шаги:
Client Identifier
Client Secret
и создайте токен Access Token
со свойствами Public
, Private
и Interact
. Возможно, вам придется добавлять или удалять свойства на основе вашей потребности в доступе. $name = array_slice(explode("/", $file_path), -1)[0];
для его устранения удалите [0]
в конце! На самом деле мне не нужно было называть эту функцию, чтобы узнать, не навредил ли она, но это решило мою проблему. Кстати, на Dreamweaver. curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
перед каждым $response = curl_exec($curl);
заявление. Это должно быть 3 дополнения. Вот мой код:
require("../Vimeo PHP path/autoload.php"); use Vimeo\Vimeo; $client_id = "*****"; //your Vimeo number here $client_secret = "*****"; //your Vimeo number here $access_token = "*****"; //your Vimeo number here $vim = new Vimeo($client_id, $client_secret, $access_token); $response = $vim->request("/videos/****"); //your Vimeo PRIVATE video ID here echo $response["body"]["stats"]["plays"];
В моем случае я сделал echo
для количества пьес, но вы можете распечатать все тело. Надеюсь, это тоже поможет кому-то.
Благодаря этому примеру я решил ту же проблему, в текущем api в методе _request (строка 125) добавьте параметр curl CURLOPT_SSL_VERIFYPEER и установите для него значение false, так что у вас будет такой массив:
$ curl_opt_defaults = array (CURLOPT_HEADER => 1, CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 30, CURLOPT_SSL_VERIFYPEER => false);
и это все 🙂 надеюсь, что это поможет кому-то другому.
Надеюсь, это поможет кому-то другому. Документация API Vimeo полностью удалена, и новые документы API обращаются к старым документам API, что только добавляет путаницы.
Новый API не использует методы из расширенного API, он использует конечные точки здесь https://developer.vimeo.com/api/endpoints
Вот код, который в конечном итоге работал для меня:
$videos = $vimeo->request("/videos/$video_id"); print_r($videos);