rutube / php-api-client
此包已被废弃且不再维护。未建议替代包。
用于Rutube api (http://rutube.ru) 的PHP客户端
1.0.12
2015-07-03 12:57 UTC
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,则连接库包含两个部分
- 需要连接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