Формат запроса

При каждом обращении к навыку Яндекс Диалоги отправляют POST-запрос на Backend, указанный при публикации.

{
  "meta": {
    "locale": "ru-RU",
    "timezone": "Europe/Moscow",
    "client_id": "ru.yandex.searchplugin/7.16 (none none; android 4.4.2)",
    "interfaces": {
      "screen": {},
      "account_linking": {},
      "audio_player": {}
    }
  },
  "request": {
    "type": "...",
  },
  "session": {
    "message_id": 0,
    "session_id": "2eac4854-fce721f3-b845abba-20d60",
    "skill_id": "3ad36498-f5rd-4079-a14b-788652932056",
    "user_id": "47C73714B580ED2469056E71081159529FFC676A4E5B059D629A819E857DC2F8",
    "user": {
      "user_id": "6C91DA5198D1758C6A9F63A7C5CDDF09359F683B13A18A151FBF4C8B092BB0C2",
      "access_token": "AgAAAAAB4vpbAAApoR1oaCd5yR6eiXSHqOGT8dT"
    },
    "application": {
      "application_id": "47C73714B580ED2469056E71081159529FFC676A4E5B059D629A819E857DC2F8"
    },
    "new": true
  },
  "state": {
    "session": {
      "value": 10
    },
    "user": {
      "value": 42
    },
    "application": {
      "value": 37
    }
  },  
  "version": "1.0"
}

Содержимое тела запроса

Свойство

Описание

meta

object

Информация об устройстве, с помощью которого пользователь разговаривает с Алисой.

request

object

Данные, полученные от пользователя.

Содержимое зависит от типа ввода, указанного в поле request.type.

session

object

Данные о сессии. Сессия — это период относительно непрерывного взаимодействия пользователя с навыком.

Сессия завершается, когда:

  • пользователь запрашивает выход из навыка;
  • навык явно завершает работу ("end_session": true);
  • от пользователя долго не поступает команд (тайм-аут зависит от поверхности, минимум несколько минут).

state

object

Данные о сохраненном состоянии.

version

string

Версия протокола.

Текущая версия — 1.0.

meta

Информация об устройстве, с помощью которого пользователь разговаривает с Алисой.

Свойство

Описание

locale

string

Язык в POSIX-формате, максимум 64 символа.

timezone

string

Название часового пояса, включая алиасы, максимум 64 символа.

client_id

string

Не рекомендуется к использованию. Интерфейсы, доступные на клиентском устройстве, перечислены в свойстве interfaces.

Идентификатор устройства и приложения, в котором идет разговор, максимум 1024 символа.

interfaces

object

Интерфейсы, доступные на устройстве пользователя.

meta.interfaces

Интерфейсы, доступные на устройстве пользователя.

Свойство

Описание

screen

object

Пользователь может видеть ответ навыка на экране и открывать ссылки в браузере.

account_linking

object

У пользователя есть возможность запросить связку аккаунтов.

audio_player

object

На устройстве пользователя есть аудиоплеер.

request

Данные, полученные от пользователя.

Свойство

Описание

type

string

Обязательное свойство.

Тип ввода. Возможные значения:

session

Данные о сессии. Сессия — это период относительно непрерывного взаимодействия пользователя с навыком.

Сессия завершается, когда:

  • пользователь запрашивает выход из навыка;
  • навык явно завершает работу ("end_session": true);
  • от пользователя долго не поступает команд (тайм-аут зависит от поверхности, минимум несколько минут).

Свойство

Описание

session_id

string

Уникальный идентификатор сессии, максимум 64 символа.

message_id

number

Идентификатор сообщения в рамках сессии, максимум 8 символов. Инкрементируется с каждым следующим запросом.

skill_id

string

Идентификатор вызываемого навыка, присвоенный при создании.

Чтобы узнать идентификатор своего навыка, откройте его в консоли разработчика — идентификатор можно скопировать на вкладке Общие сведения, внизу страницы.

user_id

string

Свойство не поддерживается — вместо него следует использовать новое, полностью аналогичное свойство session.application.application_id.

Идентификатор экземпляра приложения, в котором пользователь общается с Алисой, максимум 64 символа.

Даже если пользователь вошел в один и тот же аккаунт в приложение Яндекс для Android и iOS, Яндекс Диалоги присвоят отдельный user_id каждому из этих приложений.

user

object

Атрибуты пользователя Яндекса, который взаимодействует с навыком. Если пользователь не авторизован в приложении, свойства user в запросе не будет.

application

object

Данные о приложении, с помощью которого пользователь взаимодействует с навыком.

new

boolean

Признак новой сессии. Возможные значения:

  • true — пользователь начинает новый разговор с навыком;
  • false — запрос отправлен в рамках уже начатого разговора.

session.user

Атрибуты пользователя Яндекса, который взаимодействует с навыком. Если пользователь не авторизован в приложении, свойства user в запросе не будет.

Свойство

Описание

user_id

string

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

Этот идентификатор уникален для пары «пользователь — навык»: в разных навыках значение свойства user_id для одного и того же пользователя будет различаться.

access_token

string

Токен для OAuth-авторизации, который также передается в заголовке Authorization для навыков с настроенной связкой аккаунтов.

Это JSON-свойство можно использовать, например, при реализации навыка в Yandex Cloud Functions (Диалоги вызывают функции с параметром integration=raw,который не позволяет получать заголовки клиентского запроса).

session.application

Данные о приложении, с помощью которого пользователь взаимодействует с навыком.

Свойство

Описание

application_id

string

Идентификатор экземпляра приложения, в котором пользователь общается с Алисой, максимум 64 символа.

Даже если пользователь вошел в один и тот же аккаунт в приложение Яндекс для Android и iOS, Яндекс Диалоги присвоят отдельный application_id каждому из этих приложений.

Этот идентификатор уникален для пары «приложение — навык»: в разных навыках значение свойства application_id для одного и того же пользователя будет различаться.

state

Данные о сохраненном состоянии.

Свойство

Описание

session

object

Состояние навыка в контексте сессии.

user

object

Состояние навыка в контексте авторизованного пользователя.

application

object

Состояние навыка в контексте экземпляра приложения пользователя.

Предыдущая
Следующая