Формат и состав ответа

Состав ответа сервиса зависит от прав приложения, выбранных при регистрации на Яндекс.OAuth. Если выбрано несколько прав, ответ составляется из элементов, специфических для каждого из прав.

Ниже приведены примеры ответов для OAuth-токенов с различными правами.

Формат тела ответа по умолчанию — JSON. Чтобы получить ответ в формате XML, следует включить в запрос параметр format со значением «xml». Структура элементов одинакова для JSON и XML за тем исключением, что в XML-формате данные обрамляются корневым тегом <user>.

  1. Отсутствие прав из секции API Яндекс.Паспорта
  2. Доступ к адресу электронной почты
  3. Доступ к портрету пользователя
  4. Доступ к дате рождения
  5. Доступ к логину, имени и фамилии, полу
  6. Пример ответа

Отсутствие прав из секции API Яндекс.Паспорта

Запрос к API Яндекс.Паспорта можно составить, используя OAuth-токен, выданный для другого сервиса Яндекса. Если токен валиден, API возвращает следующий ответ:

{
  "login": "vasya",
  "id": "1000034426",
  "client_id": "4760187d81bc4b7799476b42b5103713",
  "openid_identities": [
    "http://openid.yandex.ru/vasya/",
    "http://vasya.ya.ru/"
  ]
}

Элемент ответа:

login

Логин пользователя на Яндексе.

id

Уникальный идентификатор пользователя Яндекса.

client_id

Идентификатор OAuth-приложения, для которого был выдан переданный в запросе OAuth-токен.

openid_identities

Список всех OpenID-идентификаторов, которые пользователь мог получить от Яндекса.

Список используется при миграции с OpenID Яндекса на API Паспорта.

Доступ к адресу электронной почты

При запросе с OAuth-токеном, дающим право Доступ к адресу электронной почты, API возвращает следующий ответ:

{
  "login": "vasya",
  "old_social_login": "uid-mmzxrnry",
  "default_email": "test@yandex.ru",
  "id": "1000034426",
  "client_id": "4760187d81bc4b7799476b42b5103713",
  "emails": [
    "test@yandex.ru",
    "other-test@yandex.ru"
  ],
  "openid_identities": [
    "http://openid.yandex.ru/vasya/",
    "http://vasya.ya.ru/"
  ]
}

Элементы ответа:

login

Логин пользователя на Яндексе.

openid_identities

Список всех OpenID-идентификаторов, которые пользователь мог получить от Яндекса.

Список используется при миграции с OpenID Яндекса на API Паспорта.

emails

Массив электронных адресов пользователя.

В настоящее время включает единственный e-mail — e-mail по умолчанию.

default_email

E-mail по умолчанию, предназначенный для связи с пользователем.

id

Уникальный идентификатор пользователя Яндекса.

client-id

Идентификатор OAuth-приложения, для которого был выдан переданный в запросе OAuth-токен.

Доступ к портрету пользователя

При запросе с OAuth-токеном, дающим право Доступ к аватару, API возвращает следующий ответ:

{
  "login": "vasya",
  "old_social_login": "uid-mmzxrnry",
  "id": "1000034426",
  "client_id": "4760187d81bc4b7799476b42b5103713",
  "is_avatar_empty": false,
  "default_avatar_id": "131652443",
  "openid_identities": [
    "http://openid.yandex.ru/vasya/",
    "http://vasya.ya.ru/"
  ]
}

Элементы ответа:

login

Логин пользователя на Яндексе.

openid_identities

Список всех OpenID-идентификаторов, которые пользователь мог получить от Яндекса.

Список используется при миграции с OpenID Яндекса на API Паспорта.

id

Уникальный идентификатор пользователя Яндекса.

client-id

Идентификатор OAuth-приложения, для которого был выдан переданный в запросе OAuth-токен.

is_avatar_empty

Признак того, что в поле default_avatar_id указан идентификатор заглушки (портрета, который автоматически назначается при регистрации на Яндексе).

default_avatar_id

Идентификатор портрета пользователя Яндекса.

Портрет с данным идентификатором можно скачать по ссылке следующего формата:

https://avatars.yandex.net/get-yapic/<идентификатор портрета>/<размер>

Если портрета с переданным идентификатором нет, по ссылке будет заглушка указанного размера.

Доступные размеры

Чтобы получить изображение нужного размера, Паспорт пытается найти на портрете лицо и вырезает изображение из этой области.

Значения, которые можно задать в URL портрета:

  • islands-small — 28×28 пикселей.
  • islands-34 — 34×34 пикселей.
  • islands-middle — 42×42 пикселей.
  • islands-50 — 50×50 пикселей.
  • islands-retina-small — 56×56 пикселей.
  • islands-68 — 68×68 пикселей.
  • islands-75 — 75×75 пикселей.
  • islands-retina-middle — 84×84 пикселей.
  • islands-retina-50 — 100×100 пикселей.
  • islands-200 — 200×200 пикселей.

Доступ к дате рождения

При запросе с OAuth-токеном, дающим право Доступ к дате рождения, API возвращает следующий ответ:

{
  "login": "vasya",
  "old_social_login": "uid-mmzxrnry",
  "birthday": "1987-03-12",
  "id": "1000034426",
  "client_id": "4760187d81bc4b7799476b42b5103713",
  "openid_identities": [
    "http://openid.yandex.ru/vasya/",
    "http://vasya.ya.ru/"
  ]  
}

Элементы ответа:

login

Логин пользователя на Яндексе.

openid_identities

Список всех OpenID-идентификаторов, которые пользователь мог получить от Яндекса.

Список используется при миграции с OpenID Яндекса на API Паспорта.

birthday

Дата рождения пользователя в формате ГГГГ-ММ-ДД.

Неизвестные части даты заполняются нулями, например: «0000-12-23».

Если дата рождения пользователя неизвестна:

  • в JSON-документе возвращается ключ "birthday": null;
  • в XML-документе возвращается пустой тег <birthday/>.
id

Уникальный идентификатор пользователя Яндекса.

client-id

Идентификатор OAuth-приложения, для которого был выдан переданный в запросе OAuth-токен.

Доступ к логину, имени и фамилии, полу

При запросе с OAuth-токеном, дающим право Доступ к имени пользователя, ФИО, полу, API возвращает следующий ответ:

{
  "first_name": "\u0412\u0430\u0441\u044F",
  "last_name": "\u041F\u0443\u043F\u043A\u0438\u043D",
  "display_name": "Vasya",
  "real_name": "\u0412\u0430\u0441\u044F \u041F\u0443\u043F\u043A\u0438\u043D"
  "openid_identities": [
    "http://openid.yandex.ru/vasya/",
    "http://vasya.ya.ru/"
  ],
  "login": "vasya",
  "old_social_login": "uid-mmzxrnry",
  "sex": "male",
  "id": "1000034426",
  "client_id": "4760187d81bc4b7799476b42b5103713"
}

Элементы ответа:

first_name
Имя пользователя, указанное им в Яндекс.Паспорте.
last_name
Фамилия пользователя, указанная им в Яндекс.Паспорте.
display_name
Имя, которое отображается для данной учетной записи в интерфейсе Яндекса.
real_name

Имя и фамилия пользователя, указанные им в Яндекс.Паспорте.

В формате JSON нелатинские символы имени и фамилии представлены в формате Unicode.

login

Логин пользователя на Яндексе.

openid_identities

Список всех OpenID-идентификаторов, которые пользователь мог получить от Яндекса.

Список используется при миграции с OpenID Яндекса на API Паспорта.

sex

Пол пользователя. Возможные значения:

  • «male» — мужской;
  • «female» — женский;
  • неизвестный пол:
    • в JSON-документе обозначается ключом "sex": null;
    • в XML-документе обозначается пустым тегом <sex/>.
id

Уникальный идентификатор пользователя Яндекса.

client-id

Идентификатор OAuth-приложения, для которого был выдан переданный в запросе OAuth-токен.

Пример ответа

Ниже приведены примеры ответа для OAuth-токена, дающего все права API Яндекс.Паспорта:

{
  "first_name": "\u0412\u0430\u0441\u044F",
  "last_name": "\u041F\u0443\u043F\u043A\u0438\u043D",
  "display_name": "Vasya",
  "emails": [
    "test@yandex.ru",
    "other-test@yandex.ru"
  ],
  "default_email": "test@yandex.ru",
  "real_name": "\u0412\u0430\u0441\u044F \u041F\u0443\u043F\u043A\u0438\u043D",
  "is_avatar_empty": false,
  "birthday": "1987-03-12",
  "default_avatar_id": "131652443",
  "openid_identities": [
    "http://openid.yandex.ru/vasya/",
    "http://vasya.ya.ru/"
  ],
  "login": "vasya",
  "old_social_login": "uid-mmzxrnry",
  "sex": "male",
  "id": "1000034426",
  "client_id": "4760187d81bc4b7799476b42b5103713"
}