2017-06-25 2 views
1

Je ne peux pas sembler obtenir des requêtes HTTP pour travailler dans mes compétences alexa, voici le code échantillon représentatif:https Demande de compétences Alexa

var https = require('https'); 

... 

function getTreeFact(callbackFunction){ 


    var url = 'https://alexa.phl.chs.network/treefacts/index.php'; 

    https.get(url, function(res){ 
     var body = ''; 

     res.on('data', function(chunk){ 
      body += chunk; 
     }); 

     res.on('end', function(){ 
      var gameResponse = JSON.parse(body); 
      callbackFunction(gameResponse); 
     }); 
    }).on('error', function(e){ 
    // Handle error 
    }); 
} 

... 

this.getTreeFact(function (responseMessage){ 
    this.emit(':tell', responseMessage.message); 
}); 

Je ne sais pas ce que je fais mal, je pense Je fais la requête HTTP correctement. Je sais que la compétence fonctionne sans cela (simplement en commentant les trois dernières lignes et en les remplaçant simplement par this.emit (': tell', 'hello') fonctionne bien).

Répondre

0

La page officielle de github d'Alexa contient une documentation très complète sur les appels API. Vérifiez leur documentation de compétence de liste de cuisine couvre toutes les demandes get et post https://github.com/alexa/alexa-cookbook

et https://github.com/alexa/ principal pour d'autres échantillons.

+0

J'ai essayé d'utiliser le code dont ils disposent, mais cela me donne toujours la même erreur. Je pensais que c'était le site auquel j'accède mais en utilisant simplement google.com ne fonctionne pas non plus ... Je souhaite juste qu'il affiche réellement le message d'erreur –

+0

J'ai essayé d'accéder au site Web dans votre code sur mon navigateur mais il semble il est en panne, essayer google.com ne fonctionnera pas car il ne crache pas JSON. Essayez de tester avec [ce lien] (http://ip.jsontest.com) –

0

Pour moi, ça ressemble

this.emit(':tell', responseMessage.message); 

devrait être

this.emit(':tell', responseMessage); 

Je ne vois pas .message dans ce

var gameResponse = JSON.parse(body); 

callbackFunction(gameResponse);