0

Привет Как сохранить сеанс всегда открытым в alexa app.I разработал пользовательский навык для моего клиента. После последнего сеанса сеанса умственного ответа я не хочу этого. Я хочу, чтобы сессия всегда открывалась всегда. Когда пользователь говорит, что начальные потоки намерены, она должна начинаться оттуда.Как держать сессию всегда открытой в Alexa

+1

Это очень неопределенный вопрос. Не могли бы вы подробнее рассказать? –

+0

hi разрабатывает один пользовательский навык, в котором alexa задаст вопрос многим клиентам и клиентам, ответит на ответ, echo берет вход и дает результат клиенту на основе его ответа. Поэтому я хочу сохранить сессию живым всегда Я разрабатываю приложение, используя java и хостинг через aws lambda – Kamlesh

ответ

2

Вы не можете этого сделать. Модель Алекса - это вызов и ответ. Пользователь разговаривает с Алекса, а затем говорит Алекса. Вы можете оставить сеанс открытым, но если пользователь не отвечает примерно через 8 секунд, сеанс закрывается. (Вы можете растянуть его еще на 8 секунд, если вы используете reprompt.)

Это часть их модели безопасности. Они не хотят, чтобы люди создавали навыки, которые, в основном, контролируют все происходящее в комнате. Когда Алекса слушает, все, что он говорит, транслируется в Интернет. Если кто-то нарушит их протокол, это может быть использовано для шпионажа. (Или подбегая на пропускную способность пользователя или серверах Amazon.)


Теперь, если ваш вопрос действительно один из непрерывности, что по-другому. Alexa предоставляет часть служебных переменных Session. У них есть только сеанс. Таким образом, опять же, это часть дизайна, которая не должна сохраняться в прошлых сессиях.

В общем, я не рекомендую их использовать. Алекса все время снимает сеансы. Вам гораздо лучше сохранить свои переменные. Тогда у вас есть контроль над их жизнью. Используйте переданные в UserID ключи, которые они используют, и сохраняйте их в памяти (для навыков, отличных от лямбды), и/или DynamoDB (для навыков лямбда или долгосрочности).

1

Вы можете достичь желаемого пользовательского опыта, но вам нужно построить его по-другому, потому что вы должны предположить, что сессия может закончиться в любое время, когда данные сеанса будут отброшены.

Всякий раз, когда сеанс обновляется, сохраняйте его в базе данных, такой как DynamoDB.

Определите каждый сеанс пользователем, который отправляется с каждым запросом и не изменяется между сеансами.

Когда создается новый сеанс, проверьте базу данных для любых сеансов, сохраненных против userId. Если найдено, заполните новый сеанс из базы данных. В противном случае создайте новый сеанс.