Comment créer une carte d'accueil dans Alexa

8

J'essaie de développer ma première compétence et je ne trouve pas les informations appropriées sur la façon de créer une carte d'accueil

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

dit que je devais l'ajouter à la réponse JSON, je ne comprends pas exactement où se trouve la réponse JSON?

Toute aide est très appréciée.

cartman
la source

Réponses:

4

À partir du didacticiel Amazon:

Lors de l'utilisation de la bibliothèque Java:

Créez un objet SimpleCard.

Appelez les méthodes setTitle () et setContent () de l'objet pour définir le titre et le contenu.

Passez l'objet carte à l'un ou l'autre

SpeechletResponse.newTellResponse() 
   or 
SpeechletResponse.newAskResponse() 

pour obtenir une SpeechletResponse qui inclut la carte.

Donc, fondamentalement, dans la solution Java, placez les données de json aux appels de fonction Java dans le code.

Un exemple plus complet sur SpechletResponse se trouve dans HelloWorldSpeechlet .

Vous pouvez prendre un référentiel prêt comme solution de base pour votre fonction Lambda (le code ci-dessus en fait partie) et modifier la source comme vous le souhaitez.

Vous allez créer une compétence avec des intentions dans le portail des développeurs, créer une fonction Lambda par exemple. en Java (au moins Node.js et Python également possible) et mettez-le en cours d'exécution dans AWS et mappez avec les compétences dans Developer Portal.

Après cela vient le lieu du jsoning: la phase de test. Vous envoyez des données json au service et les vérifiez dans json.

Note latérale: Dans le cas de la carte, la réponse doit contenir une carte, donc placer json dans ce contexte est un peu raté. Vous ne faites que le générer par le service Alexa.

Version Java des compétences alexa, contenant tout le code nécessaire dont vous aurez besoin:

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

mico
la source
Réponse à la question «où»: dans le code Java / python / Node.js de votre fonction Lambda.
mico
Cela a été un exemple conduit à Java, d'autres ont leurs propres bizarreries sur la façon de placer exactement les valeurs, le principe de mise en place restera.
mico
5

Section Création d'une carte d'accueil de base pour afficher du texte

Pour créer une carte simple, incluez la cardpropriété dans votre réponse JSON: définissez la typesur Simple.

  • Définissez les propriétés titleet contentsur le texte à afficher.
  • Utilisez soit “\r\n”ou “\n”dans le contentpour insérer des sauts de ligne.
 {
   "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."
     }
   }
 }

L'extrait ci-dessus greyest un extrait JSON. Notez le "card":texte dans l'extrait.

sanglot
la source
1
Mais où dois-je ajouter le JSON? dans la fonction lambda?
cartman
0

Dans le code, cela pourrait ressembler à ceci si vous utilisez 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 carte est initialisée dans la réponse comme ceci:

.withSimpleCard('title', 'content')

Avec cela, il est automatiquement ajouté à la sortie json

Elizabeth Hunter
la source