ВебмастерМетрикаВиджетыРекламная сетьДиректПоиск для сайтаAPI
Войти

В формате PDF

Получение сервисного документа

Для начала работы с API Фоток клиентскому приложению необходимо получить из сервисного документа информацию о коллекциях пользователя.

Примечание
Не рекомендуется использовать собственных алгоритмов формирования адресов, так как URI ресурсов могут меняться со временем. Клиент, использующий API Фоток, всегда должен начинать свою работу с чтения сервисного документа и использовать содержащиеся в нем ссылки на ресурсы, а также ссылки ресурсов друг на друга.

Авторизация

Для получения сервисного документа авторизация не требуется.

Порядок действий

Чтобы получить сервисный документ, нужно отправить GET-запрос на адрес сервисного документа: http://api-fotki.yandex.ru/api/users/{author}/, где {author} - логин пользователя на Яндекс.Фотках.

Внимание!
При использовании OAuth-авторизации после получения токена клиент может не знать логина. Способ получения сервисного документа в этом случае описан в разделе /api/me/.

Запрос на получение сервисного документа:

GET /api/users/alekna/ HTTP/1.1
Host: api-fotki.yandex.ru

Ответ сервера:

HTTP/1.1 200 OK 
Content-Type: application/atomsvc+xml; charset=utf-8

<service xmlns:app="http://www.w3.org/2007/app" xmlns:atom="http://www.w3.org/2005/Atom">
  <workspace>
    <atom:title>alekna на Яндекс.Фотках</atom:title>
    <collection href="http://api-fotki.yandex.ru/api/users/alekna/albums/" id="album-list">
      <atom:title>Все альбомы пользователя alekna</atom:title>
      <accept>application/atom+xml; type=entry, application/json; type=entry</accept>
    </collection>
    <collection href="http://api-fotki.yandex.ru/api/users/alekna/photos/" id="photo-list">
      <atom:title>Все фотографии пользователя alekna</atom:title>
      <accept>image/*</accept>
      <categories scheme="http://api-fotki.yandex.ru/api/users/alekna/tags/" />
    </collection>
    <collection href="http://api-fotki.yandex.ru/api/users/alekna/tags/" id="tag-list">
      <atom:title>Все теги пользователя alekna</atom:title>
      <accept />
    </collection>
  </workspace>
</service>

Сервисный документ позволяет получить адреса коллекции альбомов, общей коллекции фотографий и коллекции тегов пользователя. В данном примере это http://api-fotki.yandex.ru/api/users/alekna/albums/, http://api-fotki.yandex.ru/api/users/alekna/photos/ и http://api-fotki.yandex.ru/api/users/alekna/tags/ соответственно.

Также в элементах accept содержится информация о поддерживаемых коллекциями MIME-типах POST-запросов. Так, коллекция альбомов принимает данные в формате Atom или JSON, а коллекции фотографий - файлы изображений.

Возможные ошибки

  • 404 Not found

    Пользователя с указанным логином не существует. В теле ответа отдается User {login} not found.

/api/me/

При наличии авторизационного токена адрес сервисного документа можно узнать, обратившись к серверу по адресу http://api-fotki.yandex.ru/api/me/, после чего сервер произведет редирект на сервисный документ.

/api/me/ решает задачу определения пользователя в случае, когда клиент уже имеет токен, но не знает логина пользователя (такое возможно при получении токена по протоколу OAuth 2.0).

Авторизация

Для получения адреса сервисного документа требуется авторизация.

Порядок действий

Получение адреса сервисного документа:

GET /api/me/ HTTP/1.1
Host: api-fotki.yandex.ru
Authorization: OAuth eb1c55f...

Ответ сервера:

HTTP/1.1 302 FOUND
Content-Type: text/plain; charset=utf-8
Location: http://api-fotki.yandex.ru/api/users/alekna/

Возможные ошибки