ALEXA отправляет ответ асинхронно через шлюз EVENTS

Я выполнил все шаги, упомянутые здесь https://developer.amazon.com/en-US/docs/alexa/smarthome/send-events-to-the-alexa-event-gateway.html до получения токена носителя. Но я хотел бы точно знать, как мы отправляем асинхронный ответ Alexa? Если вы видите пример здесь

POST /v3/events HTTP/1.1
Host: api.amazonalexa.com
Authorization: Bearer access-token-from-Amazon
Content-Type: application/json

{
  "context": {
    "properties": [
    ]
  },
  "event": {
    "header": {
      "messageId": "abc-123-def-456",
      "correlationToken": "abcdef-123456",
      "namespace": "Alexa",
      "name": "Response",
      "payloadVersion": "3"
    },
    "endpoint": {
      "scope": {
        "type": "BearerToken",
        "token": "access-token-from-Amazon"
       },
       "endpointId" :  "endpoint-id"
    },
    "payload": {
    }
  }
}

Есть упоминание об идентификаторе конечной точки? Что такое идентификатор конечной точки для самого устройства Alexa? Как я могу отправить ответ Alexa? Я просто хочу отправить приветственный ответ, который Alexa озвучит, когда я отправлю его через шлюз событий? Может ли кто-нибудь показать мне образец? Спасибо


person Shanthi    schedule 22.12.2020    source источник
comment
Может кто-нибудь помочь мне? Не могли бы вы опубликовать пример простого асинхронного ответа на ALexa через шлюз событий, все, что нужно сделать Alexa, — это озвучить ответ, вот и все. и токены обновления тоже все хорошо.   -  person Shanthi    schedule 22.12.2020
comment
Вы разрабатываете навык «Умный дом» или пользовательский навык? Почему вы хотите отправить ответ Alexa асинхронно? Что ты пытаешься сделать? Шлюз событий в основном используется разработчиками Smart Home Skill для проактивного информирования Alexa о состоянии своего устройства (например, пользователь физически включил выключатель света). endpointId — это идентификатор этого умного домашнего устройства.   -  person Christina    schedule 23.12.2020
comment
@Кристина Спасибо. Я использую комбинацию модели навыков умного дома и пользовательской модели навыков в одном навыке. Когда кто-то включает свой навык, я получаю AcceptGrant ((я получаю все токены на предъявителя, доступ к обновлению всех настроек здесь). Когда кто-то использует Alexa, он вызывает лямбда, лямбда отправляет отложенный ответ синхронно. Затем через 15 секунд (дело, что моя лямбда это займет около 15 секунд) Я хотел бы отправить ОКОНЧАТЕЛЬНЫЙ ответ Alexa, используя асинхронный шлюз событий. Возможно ли это? Или есть ли другой способ сделать это? Еще раз спасибо   -  person Shanthi    schedule 23.12.2020
comment
Согласно документации , DeferredResponse поддерживается только для некоторых интерфейсов. Вам нужно будет проверить документацию интерфейса Smart Home, который вы используете, чтобы узнать, поддерживается ли он. Несмотря на это, создание одного навыка с использованием как умного дома, так и пользовательской модели навыков не означает, что вы всегда можете контролировать реакцию TTS. Это зависит от того, как пользователь взаимодействует с вашим продуктом. Если пользователь скажет Alexa, включите ‹ваше имя устройства›, невозможно, чтобы Alexa поздоровалась с пользователем.   -  person Christina    schedule 24.12.2020


Ответы (1)


Привет. Когда запрос Alexa выполнен успешно, вместо отправки ответа обратно в Alexa сделайте оставшийся вызов шлюзу Alexa Event Gateway с той же полезной нагрузкой.

Подробнее здесь.

person Varad Ujjainkar    schedule 25.07.2021