Nous développons la compétence d'alexa en utilisant alexa-app, dans une de nos intentions nous essayons d'aller chercher des albums de facebook et sur le succès/échec nous voulons qu'lexlex réagisse en conséquence. Mais l'intention n'attend pas que l'appel FB soit terminé. Voici l'extrait de code que nous utilisons:L'intention d'Alexa n'attend pas la réponse d'api
function fetchAlbums(){
return new Promise(resolve =>{
FB.api("/me/albums", function (res) {
if (res && !res.error) {
// If we have data
if (res.data) {
resolve("Got Albums");
} else {
// REPORT PROBLEM WITH PARSING DATA
resolve("Error getting albums");
}
} else {
// Handle errors here.
resolve("Error hitting endpoint");
}
});
});
}
alexaApp.intent("readFeedIntent", {
"utterances": [
"read my facebook feed", "read facebook feed", "read feed"
]
},
function(request, res1) {
// Again check if we have an access token
if(request.hasSession() && !accessToken){
accessToken = request.data.session.user.accessToken;
FB.setAccessToken(accessToken);
}
if (accessToken) {
var session = request.getSession();
fetchAlbums().then(function(data){
console.log(data);
res1.say(data);
});
} else {
res1.say(noAccessToken, tryLaterText).send();
}
});
Il est de ne pas jeter des erreurs, mais Alexa ne parle pas quoi que ce soit où je peux voir la réponse dans les journaux de la console.
Si j'ajoute: res1.say("Whatever!")
à la fin de la fonction, Alexa répondra 'Whatever' en réponse à cette intention.