Je construis actuellement une compétence personnalisée pour Alexa en Java.Java a Alexa Compétence personnalisée demander des emplacements manquants
Je veux qu'Alexa prenne un rendez-vous en utilisant un serveur Exchange existant.
Pour le rendez-vous, je veux qu'Alexa vérifie si un nom, une date et une heure sont donnés par l'utilisateur. Je le fais en utilisant les instructions if, comme:
if (date.getValue() == null) { de askResponse de retour ("S'il vous plaît donner une date afin de créer un rendez-vous")
Ce qui se passe est Alexa demande la fente manquante, mais quand je réponds à la compétence se ferme juste. Je ne sais pas comment Alexa va reconnaître ma réponse.
code est le suivant:
public SpeechletResponse getTerminResponse(Slot name, Slot date, Slot time, Session session, IntentRequest request) throws Exception {
if(time.getValue() == null) {
return askResponse("Please insert time");
} else if (date.getValue() == null) {
return askResponse("Please insert date");
} else if (name.getValue() == null) {
return askResponse("Please insert name");
} else {
try {
String[] datumArray = date.getValue().split("-");
String[] zeitArray = time.getValue().split(":");
Date startDate = new Date((Integer.parseInt(datumArray[0])-1900), (Integer.parseInt(datumArray[1])-1), (Integer.parseInt(datumArray[2])), (Integer.parseInt(zeitArray[0])), (Integer.parseInt(zeitArray[1])), 0);
Date endDate = new Date((Integer.parseInt(datumArray[0])-1900), (Integer.parseInt(datumArray[1])-1), (Integer.parseInt(datumArray[2])), (Integer.parseInt(zeitArray[0]))+1, (Integer.parseInt(zeitArray[1])), 0);
System.out.println(startDatum.toString());
System.out.println(endDatum.toString());
ExchangeHelper eh = new ExchangeHelper();
eh.createMeeting(name.getValue(), "Test", startDate, endDate);
return getTellSpeechletResponse("Appointment created successfully");
} catch (Exception e) {
System.out.println(e);
return askResponse("Failed to create appointment");
}
}
}
Voici mon Interaction Model
Toute aide serait très apprécié depuis que je recherchais documentation et des exemples pour les jours et je ne peux pas le faire fonctionner.
Meilleures salutations
pouvez-vous mettre votre modèle d'interaction que vous avez fait dans le portail des développeurs? (modèle d'interaction, slots personnalisés, énoncés) –
@ TaísBellini J'ai édité mon post original parce que je ne sais pas comment ajouter des images aux commentaires. S'il vous plaît excusez les intentions allemandes et les machines à sous, Datum signifie la date, Zeit signifie le temps et le nom est auto expliquant je suppose;) – MCR
Ok, cette interface est nouvelle pour moi. Vous pouvez mettre les invites "S'il vous plaît insérer le temps", etc directement dans ce constructeur de compétences, pas besoin de mettre dans le code. As-tu fais ça? Si vous cliquez dans la fente vous devriez voir le champ "Invites", alors il va gérer pour vous. Ce que je suppose en ce moment, c'est que puisque vous le traitez dans le code, vos énoncés ne s'attendent pas à recevoir une seule réponse comme une entrée, donc elle se ferme parce qu'il n'y a pas de correspondance. –