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