Я разрабатываю для Alexa, в частности, визуальные элементы, отображаемые на устройстве Show.
Если вы создаете визуальные элементы и доставляете их на устройство, которое их не поддерживает, вы получите ошибку.
Симулятор не поддерживает визуальные элементы, поэтому я пишу код, чтобы обойти эту проблему. К сожалению, это приводит к сбою окончательной доставки, когда я просто использую Echo.
Я не хочу писать тестовый код, а затем менять его для доставки в реальном времени. Есть ли способ определить, что симулятор используется, чтобы изолировать код для этого экземпляра.





JSON запроса Alexa включает информацию об устройстве в context:
{
"context":{
"System": {
"device":{
"supportedInterfaces":{
"Display":{},
"AudioPlayer": {},
"VideoApp":{}
}
}
}
}
}
Вы можете найти это с event.context.System.device.supportedInterfaces.Display
supportedInterfaces может включать AudioPlayer, Display и / или VideoApp.
Если его нет в списке supportedInterfaces, значит, он не поддерживается.
Симулятор Alexa должен обеспечивать отображение в поддерживаемых интерфейсах. Глянь сюда:
Note: The Alexa Simulator behaves like a device with a screen, such as the Echo Show or Echo Spot. This means that the context.System.device.supportedInterfaces property in the request sent to your skill always contains the Display interface. In addition, the simulator is not supported for use in multiple browser tabs at the same time.
Чтобы симулятор Alexa отображался как эхо-шоу, вам необходимо включить «Отображение эхо-шоу» вверху.
Под "симулятором" вы подразумеваете echoism.io?
Симулятор входит в комплект Alexa Skills.
Я должен признать, что не слышал об echoism.io. Так что я просто попробовал. Мне кажется, что это только аудио. Я тестирую визуальную часть Alexa, поэтому этого симулятора недостаточно. Существуют ли тренажеры, обеспечивающие доступ ко всем возможностям (как вербальным, так и визуальным)?
Я использовал только встроенный Alexa Simulator и Echoism.io. Я добавил к своему ответу дополнительную информацию в надежде, что это поможет решить вашу проблему.
Я знаю, что проблема в том, что симулятор не указывает, что это поддерживаемый интерфейс для отображения, и поэтому мой код обычно не отображает выводимые данные. К сожалению, это означает, что я не могу протестировать элементы отображения в симуляторе (хотя симулятор поддерживает это). Вот почему я специально хотел определить, используется ли симулятор.