Cómo crear una tarjeta de inicio en Alexa

Respuestas:

4

Del tutorial de Amazon:

Cuando se usa la biblioteca Java:

Crea un objeto SimpleCard.

Llame a los métodos setTitle () y setContent () del objeto para establecer el título y el contenido.

Pase el objeto de la tarjeta a

SpeechletResponse.newTellResponse() 
   or 
SpeechletResponse.newAskResponse() 

para obtener una SpeechletResponse que incluye la tarjeta.

Entonces, básicamente en la solución Java, coloque los datos de json a las llamadas de función Java en código.

Un ejemplo más completo sobre SpechletResponse está en HelloWorldSpeechlet .

Puede tomar un repositorio listo como solución base para su función Lambda (el código anterior es parte de uno) y modificar la fuente a su gusto.

Creará una habilidad con intenciones en el portal de desarrollador, creará la función Lambda, por ejemplo. en Java (al menos Node.js y Python también es posible) y ponerlo en ejecución en AWS y mapear junto con la habilidad en el Portal del desarrollador.

Después de eso viene el lugar de jsoning: la fase de prueba. Empuja los datos json al servicio y los verifica en json.

Nota al margen: en el caso de la tarjeta, la respuesta debe contener la tarjeta, por lo que colocar json en este contexto es un poco extraño. Solo haces que el servicio de Alexa lo genere.

Versión Java de Alexa Skills, que contiene todo el código necesario que necesitará:

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

mico
fuente
Responda a la pregunta 'where': en el código Java / python / Node.js de su función Lambda.
mico
Este fue un ejemplo llevado a través de Java, otros tienen sus propias peculiaridades sobre cómo colocar exactamente los valores, el principio de permanencia.
mico
5

Sección Crear una tarjeta de inicio básica para mostrar texto

Para crear una tarjeta simple, incluya la cardpropiedad en su respuesta JSON: establezca el typeen Simple.

  • Establezca las propiedades titley contentpara el texto a mostrar.
  • Use cualquiera “\r\n”o “\n”dentro de contentpara insertar saltos de línea.
 {
   "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."
     }
   }
 }

El fragmento anterior en greyes fragmento JSON. Tenga "card":en cuenta el texto en el fragmento.

sollozo
fuente
1
Pero, ¿dónde debo agregar el JSON? en la función lambda?
cartman
0

En el código podría verse así si está usando node.js

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();
    },
};

La tarjeta se inicializa en la respuesta de esta manera:

.withSimpleCard('title', 'content')

Con esto se agrega automáticamente a la salida json

Elizabeth Hunter
fuente