So erstellen Sie eine Heimkarte in Alexa

8

Ich versuche, meine erste Fähigkeit zu entwickeln, und finde keine richtigen Informationen zum Erstellen einer Heimkarte

https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/providing-home-cards-for-the-amazon-alexa-app#creating-a-basic-home-card- Text anzeigen

sagt, ich musste es der JSON-Antwort hinzufügen, ich verstehe nicht, wo genau die JSON-Antwort ist?

Jede Hilfe wird sehr geschätzt.

Cartman
quelle

Antworten:

4

Aus dem Amazon-Tutorial:

Bei Verwendung der Java-Bibliothek:

Erstellen Sie ein SimpleCard-Objekt.

Rufen Sie die Methoden setTitle () und setContent () des Objekts auf, um den Titel und den Inhalt festzulegen.

Übergeben Sie das Kartenobjekt an einen der beiden

SpeechletResponse.newTellResponse() 
   or 
SpeechletResponse.newAskResponse() 

um eine SpeechletResponse zu erhalten, die die Karte enthält.

Platzieren Sie also in einer Java-Lösung Daten von json zu Java-Funktionsaufrufen im Code.

Vollständigeres Beispiel über SpechletResponse ist in HelloWorldSpeechlet .

Sie können ein fertiges Repository als Basislösung für Ihre Lambda-Funktion verwenden (der obige Code ist Teil einer solchen) und die Quelle nach Ihren Wünschen ändern.

Sie erstellen eine Fähigkeit mit Absichten im Entwicklerportal, erstellen eine Lambda-Funktion, z. in Java (zumindest Node.js und Python ebenfalls möglich) und in AWS ausführen und zusammen mit den Fähigkeiten im Entwicklerportal zuordnen.

Danach kommt der Ort des Jsoning: die Testphase. Sie senden JSON-Daten an den Service und überprüfen sie in JSON.

Randnotiz: Im Fall einer Karte sollte die Antwort eine Karte enthalten, so dass das Platzieren von json in diesem Kontext ein wenig fehlgeschlagen ist. Sie lassen nur den Alexa-Dienst generieren.

Java-Version von Alexa Skills, die den gesamten erforderlichen Code enthält:

https://github.com/amzn/alexa-skills-kit-java/blob/master/README.md

mico
quelle
Beantworten Sie die Frage 'wo': im Java / python / Node.js-Code Ihrer Lambda-Funktion.
Mico
Dieses Beispiel wurde in Java durchgeführt, andere haben ihre eigenen Macken, wie man genau die Werte platziert, das Put-Prinzip bleibt.
Mico
5

Abschnitt Erstellen einer Basiskarte zum Anzeigen von Text

Um eine einfache Karte zu erstellen, fügen Sie die cardEigenschaft in Ihre JSON-Antwort ein: Setzen Sie die typeauf Simple.

  • Legen Sie die Eigenschaften titleund contentauf den anzuzeigenden Text fest.
  • Verwenden Sie entweder “\r\n”oder “\n”innerhalb von content, um Zeilenumbrüche einzufügen.
 {
   "version": "1.0",
   "response": {
     "outputSpeech": {"type":"PlainText","text":"Text to speak back to the user."},
     "card": {
       "type": "Simple",
       "title": "Example of the Card Title",
       "content": "Example of card content. This card has just plain text content.\nThe content is formatted with line breaks to improve readability."
     }
   }
 }

Das obige Snippet greyist ein JSON-Snippet. Beachten Sie den "card":Text im Snippet.

Schluchzen
quelle
1
Aber wo soll ich den JSON hinzufügen? in der Lambda-Funktion?
Cartman
0

Im Code könnte es so aussehen, wenn Sie node.js verwenden

const LaunchRequestHandler = {
    canHandle(handlerInput) {
        return handlerInput.requestEnvelope.request.type === 'LaunchRequest';
    },
    handle(handlerInput) {
        var reprompt = '';
        const speakOutput = 'Protokollaufnahme gestartet.';
        return handlerInput.responseBuilder
            .speak(speakOutput)
            .reprompt(reprompt)
            .withSimpleCard('Protokollaufnahme', speakOutput)
            .withShouldEndSession(false)
            .getResponse();
    },
};

Die Karte wird in der Antwort wie folgt initialisiert:

.withSimpleCard('title', 'content')

Damit wird es automatisch zum json-Ausgang hinzugefügt

Elizabeth Hunter
quelle