2017-04-24 5 views
0

Ich schreibe eine Alexa Skill, die einen API-Aufruf an Google Kalender macht, aber meine GET-Anfrage funktioniert nicht.Node GET-Anfrage funktioniert nicht

var request = require('request'); 
console.log("Before requests"); 

// getUrl is the the url and returns the data when entered into my browser    
request(getUrl, function (error, response, body) { 
    console.log('error:', error); 
    console.log('statusCode:', response && response.statusCode); 
    console.log('body:', body); 
}); 

Ich request mit dem HTTP-Aufruf zu machen und dieser Code ist buchstäblich nur aus dem github page kopiert, wird aber nichts an der Konsole angemeldet, also bin ich nicht sicher, wie zu debuggen, was falsch läuft. Andere Methoden wie http.get(options, callback) haben zu denselben Ergebnissen geführt - jede console.log() im Callback wird nicht ausgeführt. Hat jemand einen Einblick? Vielen Dank!

-

Ein paar andere Dinge - mein console.log("Before requests"); auftaucht, und meine getUrl möglicherweise nicht den richtigen Schlüssel api hat, um die Anforderung zu machen, aber es sollte noch einen Fehler statt überhaupt nicht zurückkehren zu arbeiten.

Dieser Code läuft durch eine Amazon Lambda-Funktion (AWS) und ich sehe die Protokolle über AWS Cloudwatch. Es scheint, dass, wenn ich meinen Code in meinem Terminal node index.js laufen die Anfrage geht gut durch.

-

console.log(request); Ausgänge:

jar: [Function], 
     [ 'accept', 
     'accept-charset', 
     'accept-encoding', 
     'accept-language', 
     'accept-ranges', 
     'cache-control', 
     'content-encoding', 
     'content-language', 
     'content-location', 
     'content-md5', 
     'content-range', 
     'content-type', 
     'connection', 
     'date', 
     'expect', 
     'max-forwards', 
     'pragma', 
     'referer', 
     'te', 
     'user-agent', 
     'via' ], 
    defaultProxyHeaderExclusiveList: [ 'proxy-authorization' ] }, 
    initParams: [Function: initParams], 
    debug: [Getter/Setter] 
+0

Ich habe 'Anfrage' vorher nicht verwendet - aber aus Neugier, was passiert, wenn Sie' console.log (request) '? (vor dem Aufruf natürlich) – skwidbreth

+0

könnte es sein, dass die URL übergeben wird? – heyitsjhu

+0

Was ist die URL? – chenkehxx

Antwort

2

es heraus - nach meinem API-Aufruf zu machen, das Programm direkt auf this.emit(:tell, "....."); effektiv Finishing, bevor die API-Antwort zurück zu kommen ich bewege. Ich musste meinen API-Aufruf mit einem Versprechen versehen, um sicherzustellen, dass es lief, bevor Alexa Alexa antwortete.

0

Funktioniert das gut?

var options = { 
    url: $link, //paste your link here 
    method: 'GET'//or POST or whatever you want 
}; 
request(options, function(error, response, body) { 
    console.log(body); 
}); 
+0

Leider nicht. Ich glaube, es ist ein Problem, wenn ich meinen Code in AWS Lambda einfüge und ihn von der Amazon Developer Console aus starte, aber ich bin mir nicht sicher, warum das ein Problem wäre. – mcheah

Verwandte Themen