Cómo crear una tarjeta de inicio en Alexa


8

Estoy tratando de desarrollar mi primera habilidad y no encuentro la información adecuada sobre cómo crear una tarjeta de inicio

https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/provide-home-cards-for-the-amazon-alexa-app#creating-a-basic-home-card- para mostrar texto

dice que tuve que agregarlo a la respuesta JSON, no entiendo dónde está exactamente la respuesta JSON.

Cualquier ayuda es muy apreciada.

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


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.


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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.