drnixx/php-rutube-client
Composer 安装命令:
composer require drnixx/php-rutube-client
包简介
PHP client for Rutube api (http://rutube.ru)
README 文档
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
Документация по API
Документация по библиотеке
drnixx/php-rutube-client 适用场景与选型建议
drnixx/php-rutube-client 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 81 次下载、GitHub Stars 达 0, 最近一次更新时间为 2018 年 06 月 04 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「api」 「client」 「sdk」 「rutube」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 drnixx/php-rutube-client 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 drnixx/php-rutube-client 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 drnixx/php-rutube-client 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
A PSR-7 compatible library for making CRUD API endpoints
Mock PSR-18 HTTP client
Asynchronous MQTT client built on React
Client for Google Directions API to add interpolated points to a route consisting of given coordinates.
A Flickr wrapper to allow you to call the Flickr api with Guzzle as the backend.Goal is to have 100% Flickr api coverage rather than just upload/display photos (currently at 23%).
统计信息
- 总下载量: 81
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 13
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: Apache-2.0
- 更新时间: 2018-06-04