Skip to content
This repository has been archived by the owner on Oct 29, 2021. It is now read-only.
/ php-api-client Public archive

Внимание! Данный репозиторий более не поддерживается.

License

Notifications You must be signed in to change notification settings

rutube/php-api-client

Repository files navigation

Rutube PHP API Client

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, то подключение библиотеки состоит из 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('[email protected]', '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

About

Внимание! Данный репозиторий более не поддерживается.

Resources

License

Stars

Watchers

Forks