Giter Site home page Giter Site logo

romka-chev / php-yandex-fotki Goto Github PK

View Code? Open in Web Editor NEW

This project forked from yandex-php/php-yandex-fotki

0.0 2.0 2.0 148 KB

PHP реализация API для работы с сервисом Яндекс.Фотки (яндекс, фотки, yandex, fotki)

Home Page: http://api.yandex.ru/fotki/doc

License: MIT License

PHP 100.00%

php-yandex-fotki's Introduction

API для работы с сервисом Яндекс.Фотки

Функционал

Примеры

$api = new \Yandex\Fotki\Api($login);

// Загрузка сервисного документа, в котором ссылки на коллекции
// пункт необязательный, но в Яндексе написано, что ссылки могут
// когда-нибудь измениться
$api->loadServiceDocument()

// Аутентификация
// Принимает пароль от аккаунта или fimp-token
// Внимание! При получении Fimp-токена - Яндекс часто отвечает 502 ошибкой
try {
    $api->auth($passwordOrToken);
} catch(\Yandex\Fotki\Exception\ServerError $ex) {
    // Яндекс ответил 502. Повторите попытку снова. Как правило, раза с 5 удается получить токен
} catch(\Yandex\Fotki\Exception\Api\Auth $ex) {
    // Что-то с самой авторизацией (см. $ex->getMessage())
}

// Сохраните токен куда-нибудь. По документации - время жизни токена неограничено
$token = $api->getAuth()->getToken();

// Получение коллекции альбомов
$collection = $api->getAlbumsCollection()
    ->setLimit(5) // лимит на загрузку 5 альбомов
    ->load();
$collection->getList();

// Загрузка всей коллекции
$collection = $api->getAlbumsCollection()->loadAll();

// Постраничная загрузка коллекции
try {
    $collection = $api->getAlbumsCollection()->load()->next()->next()->next();
} catch(\Yandex\Fotki\Exception\Api\StopIteration $ex) {
    // Окончание постраничной навигации
}

// Список альбомов в коллекции
$albums = $collection->getList();

$album = null;
// Проходимся по альбомам коллекции (берем первый попавшийся)
foreach($albums as $id => $item) {
    $album = $item;
    break;
}

// Работа с альбомом - это работа с коллекцией фотографий
// и мета-информацией об альбоме.
// Загружаем все фотки альбома
$photos = $album->loadAll()->getList();

По всему коду прописаны php-doc комментарии, поэтому в IDE должны быть нормальные подсказки по методам у объектов.

Кэширование

Для объектов API реализован интерфейс Serializable, что позволит вам сохранять полученные объекты в текстовом представлении.

$api = new \Yandex\Fotki\Api($login);
$api->auth($token);

// Загружаем все альбомы в коллекцию
$collection = $api->getAlbumsCollection()->loadAll();

// Сериализуем коллекцию (и можем сохранить в кэш, например)
echo serialize($collection);

Загрузка фото

$api = new \Yandex\Fotki\Api($login);
$api->oauth($token);

// Получаем путь к картинке на сервере.
$imgPath = 'path_to_photo.png';

try {
    // Попробуем загрузить картинку на Яндекс.Фотки
    // Вторым параметром можно (не обязательно) указать id фотоальбома, в который должна попасть фотка
    $arPhoto = $api->sendPhoto(array('image'=> '@'. $imgPath,'access' => 'public'), 479011);
} catch (\Yandex\Fotki\Exception\Api $ex) {
}
// Посмотрим что получилось.
print_r($arPhoto);

php-yandex-fotki's People

Watchers

 avatar  avatar

Forkers

yaskhan algol1980

php-yandex-fotki's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.