- Получение Fimp-токена по логину/паролю
- Получение OAuth-токена
- Получение сервисного документа
- Загрузка изображения ->
- Постраничная выдача коллекций
- Получение данных альбома
- Добавление нового альбома ->
- Редактирование альбома ->
- Удаление альбома ->
- Получение данных фотографии
- Редактирование фотографии ->
- Удаление фотографии ->
- Получение данных тега
- Добавление тега ->
- Редактирование тега ->
- Удаление тега ->
- Получение данных коллекции альбомов
- Добавление нового альбома ->
- Получение данных коллекции фотографий альбома
- Загрузка изображения в альбом ->
- Получение данных общей коллекции фотографий
- Загрузка изображения в общую коллекцию фотографий ->
- Получение данных коллекции тегов
- Получение данных коллекции фоторафий тега
- Получение коллекции новых интересных фотографий ->
- Получение коллекции популярных фотографий ->
- Получение коллекции "Фото дня" ->
$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);