J'écris une fonction Lambda qui obtient des données d'une API pour une compétence Alexa, mais je veux rendre les résultats plus spécifiques en utilisant le type de fente AMAZON.DATE
intégré d'Amazon . Par exemple, renvoyer uniquement des événements pour une date spécifique.Renvoyer les données de l'API en fonction de la date/type d'emplacement Amazon
Fonction:
switch(event.request.intent.name) {
case "GetTodaysPerfs":
var endpoint = "http://services-app.lincolncenter.org/api/v1/event?dateFrom=2017-06-11T04%3A00%3A00.0Z&dateTo=2017-06-12T04%3A00%3A00.0Z"
var body = ""
http.get(endpoint, (response) => {
response.on('data', (chunk) => { body += chunk })
response.on('end',() => {
var data = JSON.parse(body)
var perfs = data.data[0].show.title
context.succeed(
generateResponse(
buildSpeechletResponse(`The following performances are on today: ${perfs}`, true),
{}
)
)
})
})
break;
default:
throw "Invalid intent"
}
je peux obtenir des résultats plus précis en spécifiant manuellement une plage de dates dans l'URL du point final, mais de toute évidence, ce n'est pas idéal car il est pas dynamique.
Je suis nouveau à travailler avec les API, mais j'ai quelques idées:
Contstruct l'URL de point final à la volée en utilisant
AMAZON.DATE
boucle à travers les objets
data
et filtre sur la basedata.dateRange
pour chaque événement
pour de meilleures performances, je me penche vers la première depuis la defaul Les données sont très grandes. Quelle serait la meilleure solution pour moi et comment pourrais-je y parvenir?
S'il vous plaît laissez-moi savoir si je peux fournir plus d'informations utiles.
Merci!
Merci! Ceci est vraiment utile. J'essaye juste d'accéder aux données de fente, mais ne peux pas sembler. J'ai essayé de définir 'var todaySlot = this.request.intent.slots.Today.value' au-dessus de ma variable' data', mais elle n'a pas retourné la date. A-t-il besoin de sa propre fonction? –