rutube/php-api-client

此包已被废弃且不再维护。未建议替代包。

用于Rutube api (http://rutube.ru) 的PHP客户端

1.0.12 2015-07-03 12:57 UTC

This package is not auto-updated.

Last update: 2021-10-30 01:51:36 UTC


README

Build Status Scrutinizer Code Quality Code Coverage Latest Stable Version

安装

通过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

API文档

dev.rutube.ru

库文档

rutube.github.io/php-api-client