Уведомление об изменении параметров устройств

Уведомляет платформу умного дома об изменении параметров устройств.

Пример ситуации, в которой отправляется текущий запрос: разработчик навыка обновил список умений у устройства пользователя, или пользователь переименовал устройство в приложении провайдера.

Примечание

Сервис уведомлений доступен только для опубликованных навыков. Если вы только разрабатываете навык, то можно сделать его приватным на время тестирования и не открывать для внешних пользователей.

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

POST https://dialogs.yandex.net/api/v1/skills/{skill_id}/callback/discovery

Заголовки запроса

Параметр

Описание

Обязательный

Authorization

Авторизационный токен владельца навыка.

Да

Content-Type

Формат передаваемых/отправляемых данных. Возможные значения: application/json.

Да, в операциях с http-методом POST

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

{
    "ts": Float64,
    "payload": {
        "user_id": String
    }
}

Параметр

Тип

Описание

Обязательный

ts

Float64

Время возникновения события в секундах и долях секунды, формат unix timestamp.

Например, значение 1611764267.120 соответствует 27 января 2021 года 16 часов 17 минут 47 секунд 120 миллисекунд.

Да

payload

Object

Объект с идентификатором.

Да


Объект payload

Параметр

Тип

Описание

Обязательный

user_id

String

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

Да

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

HTTP/1.1 202 Accepted

{
  "request_id": String,
  "status": "ok"
}

Параметр

Тип

Описание

Обязательный

request_id

String

Идентификатор запроса. Необходимо логировать для расследования инцидентов.

Да

status

String

Статус обработки запроса. Допустимые значения:

  • ok.

Да

HTTP/1.1 400

{
  "request_id": String,
  "status": "error",
  "error_code": String,
  "error_message": String
}

Параметр

Тип

Описание

Обязательный

request_id

String

Идентификатор запроса. Необходимо логировать для расследования инцидентов.

Да

status

String

Статус обработки запроса. Допустимые значения:

  • error.

Да

error_code

String

Код ошибки. Допустимые значения:

  • BAD_REQUEST;
  • UNKNOWN_USER.

Нет

error_message

String

Сообщение об ошибке.

Нет

Коды ошибок

Пример

curl -i -X POST 'https://dialogs.yandex.net/api/v1/skills/user-test-skill/callback/discovery' \
-H 'Authorization: OAuth 123qwe456a...' \
-H 'Content-Type: application/json' \
-d '{
    "ts": 1611764267.120,
    "payload": {
        "user_id": "provider-user-id-1"
    }
}'
HTTP/1.1 202 Accepted

{
  "request_id": "75442486-0878-440c-9db1-a7006c25a39f",
  "status": "ok"
}
HTTP/1.1 400

{
  "request_id": "same-as-in-request",
  "status": "error",
  "error_code": "UNKNOWN_USER",
  "error_message": "User not found"
}

64-битное число с плавающей точкой с точностью до 15-18 десятичных знаков.

Список пар "ключ": значение, разделенных запятой. Выделяется фигурными скобками {}.

{
  "name": "John",
  "surname": "Smith"
}

Cтрока, выделяется кавычками, например "Hello world".

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

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