0

Hallo, wie man Sitzung immer offen in Alexa App.Ich entwickelte benutzerdefinierte Fähigkeit für meinen Client .Nach der letzten Antwort Fähigkeit Sitzung endet.Ich will das nicht. Ich möchte Sitzung immer offen halten. So wenn Benutzer sagt, dass die Öffnung fließt, sollte Absicht von dort beginnen.Wie man Sitzung immer offen in Alexa hält

+1

Dies ist eine sehr vage formulierte Frage. Könntest du etwas mehr ausarbeiten? –

+0

Hallo bin ich eine benutzerdefinierte Fertigkeit zu entwickeln, in der Alexa Fragen an viele Kunden und Kunden wird die Antwort beantworten, Echo nimmt die Eingabe und gibt eine Ausgabe an den Kunden auf der Grundlage seiner Antwort. Also ich möchte die Sitzung am Leben erhalten, immer ich entwickle Anwendung mit Java und Hosting durch AWS Lambda – Kamlesh

Antwort

2

Sie können dies nicht tun. Alexas Modell ist Anruf und Antwort. Der Benutzer spricht mit Alexa, und dann spricht Alexa zurück. Sie können die Sitzung geöffnet lassen, aber wenn der Benutzer nicht innerhalb von 8 Sekunden antwortet, wird die Sitzung geschlossen. (Sie können es weitere 8 Sekunden dehnen, wenn Sie einen Repromt verwenden.)

Dies ist Teil ihres Sicherheitsmodells. Sie wollen nicht, dass Menschen Fähigkeiten schaffen, die im Grunde alles überwachen, was in einem Raum passiert. Wenn Alexa zuhört, wird alles, was es sagt, ins Internet gestreamt. Sollte jemand sein Protokoll brechen, könnte dies für Spionagezwecke verwendet werden. (Oder angerannt Bandbreite auf dem Benutzer-oder Amazon-Servern.)


Nun, wenn Ihre Frage ist wirklich eine der Kontinuität ist, das ist etwas anderes. Alexa bietet als Teil seiner Service Session Variablen. Diese haben nur eine Lebenszeit der Sitzung. Also ist es wieder Teil des Designs, diese vergangenen Sitzungen nicht zu wiederholen.

Im Allgemeinen empfehle ich jedoch nicht, sie zu verwenden. Alexa lässt die ganze Zeit Sessions fallen. Es ist viel besser für Sie, Ihre eigenen Variablen zu behalten. Dann haben Sie die Kontrolle über ihre Lebensdauer. Verwenden Sie die übergebene Benutzer-ID als Schlüssel und speichern Sie sie entweder im Speicher (für Nicht-Lambda-Fertigkeiten) und/oder einer DynamoDB (für Lambda-Fertigkeiten oder längerfristige Persistenz).

1

Sie können die gewünschte Benutzererfahrung erzielen, aber Sie müssen sie anders erstellen, da Sie davon ausgehen müssen, dass die Sitzung zu einem beliebigen Zeitpunkt beendet wird, wenn Sitzungsdaten verworfen werden.

Wenn die Sitzung aktualisiert wird, speichern Sie sie in einer Datenbank, z. B. DynamoDB.

Identifizieren Sie jede Sitzung durch die Benutzer-ID, die mit jeder Anforderung gesendet wird und nicht zwischen Sitzungen wechselt.

Wenn eine neue Sitzung erstellt wird, überprüfen Sie die Datenbank auf alle Sitzungen, die für die Benutzer-ID gespeichert wurden. Falls gefunden, füllen Sie die neue Sitzung aus der Datenbank. Erstellen Sie andernfalls eine neue Sitzung.

Verwandte Themen