rutube / php-api-client
PHP client for Rutube api (http://rutube.ru)
Installs: 4 724
Dependents: 0
Suggesters: 0
Security: 0
Stars: 8
Watchers: 16
Forks: 5
Open Issues: 0
Requires
- php: >=5.3.3
- nategood/httpful: 0.2.19
Requires (Dev)
- brianium/paratest: 0.12.*
- phpunit/phpunit: 4.5.*
README
Установка
Установка через composer:
composer require "rutube/php-api-client: 1.0.*"
Использование
require 'vendor/autoload.php'; /** * Авторизация **/ Rutube\Rutube('login', 'password', /*secure*/ true); $rutube->isAuthorized(); // result: true/false $rutube->isSecure(); // Возвращает тип соединения. В случае https - true; в случае http - false /** * Работа с видео **/ // Основные параметры: $url = 'url'; $title = 'title'; $descr = 'description'; $isHidden = 0; $categoryId = 13; // Чтобы узнать о состоянии загружаемого видео после конвертации, нужно задать callback-урлы: $callback_url = 'http://host.host/success'; // В случае успешной загрузки и конвертации видео в теле запроса будут переданы данные видео. $errback_url = 'http://host.host/error'; // В случае ошибки загрузки и конвертации в теле запроса будут сведения об ошибке. // Получить объект видео: $video = $rutube->video(); // Загрузить видео. В ответе содержится video_id: $data = $video->upload($url, $title, $descr, $isHidden, $categoryId, $callback_url, $errback_url); // Обновить параметры видео (заголовок, описание, видимость и категорию): $video->patchVideo($data->video_id, $title, $descr, $isHidden, $categoryId); // Частично обновить параметры видео: // описание и категорию: $video->patchVideo($data->video_id, null, $descr, null, $categoryId); // только заголовок: $video->patchVideo($data->video_id, $title); // Удалить видео: $video->deleteVideo($data->video_id); // Добавить обложку видео. $filename - полный путь до файла: $video->addThumb($data->video_id, $filename); // Отложить публикацию до времени: $video->publication($data->video_id, '2015-01-16 20:36:31'); // Получить видео: $video->getVideo($data->video_id); /** * Работа с данными, не требующими авторизации **/ $search = $rutube->search(); // Показать список видео пользователя по его id: $search->loadVideoPersonById($personId, $page = 1, $limit = 20); // Показать теги: $search->loadTags($page = 1, $limit = 20); // Показать видео по тегу: $search->loadVideoTags($tagId, $page = 1, $limit = 20); // Показать тв-шоу: $search->loadTv($page = 1, $limit = 20); // Показать типы тв-шоу: $search->loadTvTypes($tvShowId); // Показать сезоны тв-шоу: $search->loadTvSeasons($tvShowId); // Показать видео тв-шоу: $search->loadTvVideos($tvshowId, $page = 1, $limit = 20); // Показать видео из последнего сезона тв-шоу: $search->loadTvLastSeasonVideos($tvShowId, $page = 1, $limit = 20) /** * Работа с данными, требующими авторизации **/ // Если авторизованы, показать список личных видео: $search->loadVideoPerson($page = 1, $limit = 20);
Использование без composer
Если Вы по каким-то причинам не пользуетесь composer, то подключение библиотеки состоит из 2-х частей:
- Необходимо подключить http-клиента (httpful, на данный момент версия 0.2.19)
- Подключить автолоадер API-клиента
Пример использования библиотеки в описанном выше ключе см. examples/without-composer/rutube-client-without-composer.php
По-умолчанию загрузчик ищет код библиотеки по пути ./src, указать новый путь можно выставив константу RUTUBE_CLIENT_SRC_DIR.
Обработка ошибок
Все ошибки передаются через Exceptions соответствующего класса.
Код ответа | Класс Exception | Описание |
---|---|---|
ConnectionErrorException | Сервер не доступен | |
400 | BadRequestException | Переданы некорректные данные |
401 | UnauthorizedException | Требуется авторизация |
403 | ForbiddenException | Авторизованный пользователь не имеет прав на выполнение данного действия |
404 | NotFoundException | Сущность или ресурс не существуют (не доступны) |
405 | MethodNotAllowedException | Ресурс не поддерживает работу с используемым методом запроса |
500 | ServerErrorException | Во время выполнения запроса возникли ошибки на стороне сервера. Рекомендуется попробовать позднее или связаться со службой поддержки |
Пример авторизации с обработкой ошибок:
try { $rutube = new \Rutube\Rutube('squirrel@squirrel.ru', '998800', /*secure*/ true); } catch (Exceptions\ConnectionErrorException $ex) { echo "Сервер не доступен"; } catch (Exceptions\BadRequestException $ex) { echo "Некорректные параметры авторизации"; }
Запуск юнит-тестов
Тесты написаны на phpunit.
Запустить тесты без установленного phpunit:
$ composer update
$ composer test