Wie ein Request und ein Response eines Amazon Alexa Skills aufgebaut ist, hat Amazon schon sehr schön auf dieser Seite beschrieben:
https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/alexa-skills-kit-interface-reference
Darum gehe ich lieber auf die Besonderheiten ein.
Hier ist ein typischer Amazon Alexa Skill Request:
{ "version": "1.0", "session": { "new": true, "sessionId": "amzn1.echo-api.session.c3b35a9a-ed87-497b-8269-de", "application": { "applicationId": "amzn1.ask.skill.20eb8709-a6bb-42ed-a126-d" }, "user": { "userId": "amzn1.ask.account.AGO7JIGK7IX" } }, "context": { "AudioPlayer": { "playerActivity": "IDLE" }, "System": { "application": { "applicationId": "amzn1.ask.skill.20eb8709-a6bb-42ed-a126-d" }, "user": { "userId": "amzn1.ask.account.AGO7JIGK7IP" }, "device": { "supportedInterfaces": { "AudioPlayer": {} } } } }, "request": { "type": "LaunchRequest", "requestId": "amzn1.echo-api.request.b2412b76-33ac-4831-a7b2-0", "timestamp": "2017-02-08T18:47:42Z", "locale": "de-DE" } }
Wie wir sehen können, besteht der Request aus dem Attribut Version (Zeile 2) und 3 weiteren Objekten (Session – Zeile 3, Context – Zeile 13, Request – Zeile 31). Amazon selbst schreibt, dass das Session-Objekt nicht bei jedem Request dabei ist. Also nur bei Launch-, Intent und SessionEndedRequests.
Aber, und das steht da nirgendwo, gilt das Gleiche auch für die anderen Objekte, dem Request und dem Context-Objekt. Zum Beispiel sendet der Testclient unter developer.amazon.com, NIE ein Context-Objekt. Nie. Wirklick nie, Da könnt ihr warten, bis ihr schwarz werdet.
Wenn ihr das AudioPlayer Interface verwendet, seit gewarnt! Hier gibt es Requests der Typen:
Die KEINEN oder nur einen GANZ BESTIMMTEN Response erwarten.
Allein die Warnung am Anfang der Amazon Dokumentation sollte einen Entwickler „wachsam“ machen. Da steht nämlich:
und auch beim Response sollte man wachsam bleiben, da man aktuell immer das Attribut Version mit „1.0“ vorbelegen muss.
Copyright © 2017 AxxG – Alexander Gräsel
Kommentar verfassen