Besonderheiten eines Amazon Alexa Skill Requests

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.

 

 

 

fehlende Objekte

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.

 

Response ohne Inhalt

Wenn ihr das AudioPlayer Interface verwendet, seit gewarnt! Hier gibt es Requests der Typen:

  • AudioPlayer.PlaybackStarted
  • AudioPlayer.PlaybackFinished
  • AudioPlayer.PlaybackStopped
  • AudioPlayer.PlaybackNearlyFinished
  • AudioPlayer.PlaybackFailed

Die KEINEN oder nur einen GANZ BESTIMMTEN Response erwarten.

 

Stabilität der API

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.

 

Habt ihr noch keinen Echo?! Dann hier kaufen:)

 

Quellen und weitere Links

 

Copyright © 2017 AxxG – Alexander Gräsel




Keine Antworten : “Besonderheiten eines Amazon Alexa Skill Requests”

Trackbacks/Pingbacks

  1. Quickstart: Amazon Alexa Custom Skill mit PHP und ohne Amazon Lambda | AxxG Blog - […] Noch einfacher ist der Service Simulator. Hier müsst ihr einfach euren Sprachbefehl eintragen und fertig. Aber Achtung hier gibt…

Kommentar verfassen

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.