2016-07-22 22 views
1

Ich versuchte Geschichte Bluff Beispiel Wikipedia-Service aufrufen. Ich habe den Anruf in die Ein-Start-Nachricht gestellt. Ich kann sehen, dass es meine Nachricht bis zu dem Punkt druckt, der den Anruf stmt trifft. aber dann druckt es nichts in der Konsole. der Code sieht aus wie folgt:Alexa Skill Webservice Anruf nicht

var https = require('https'); 
var urlPrefix = 'https://en.wikipedia.org/w/api.php?action=query&prop=extracts&format=json&explaintext=&exsectionformat=plain&redirects=&titles='; 

HowTo.prototype.eventHandlers.onLaunch = function (launchRequest, session, response) { 
    console.log("vik::::::::::::: before service call "); 


    var speechText = "Welcome to the your assistant? ... what can I help you with."; 
    var repromptText = "For instructions on what you can say, say help me."; 
    response.ask(speechText, repromptText); 
    getJsonEventsFromWikipedia("day", "date", function (events) { 
     console.log("vik::::::::::::: wikipedia response received"); 
     console.log("values are:" + events); 
    }); 
}; 


function getJsonEventsFromWikipedia(day, date, eventCallback) { 
    var url = urlPrefix+'Jan_21'; 
    console.log("url to invoke is:" + url); 

    https.get(url, function(res) { 
     console.log("vik:::::::::::::::::::::inside data fetch"); 
     var body = ''; 

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

     res.on('end', function() { 
      var stringResult = body; 
      eventCallback(stringResult); 
     }); 
    }).on('error', function (e) { 
     console.log("Got error: ", e); 
    }); 
} 

Die Konsole druckt wie

START RequestId: 0c6d7a9b-4fcd-11e6-84e8-6b679452fe6e Version: $LATEST 
2016-07-22T05:27:58.039Z 0c6d7a9b-4fcd-11e6-84e8-6b679452fe6e session applicationId: amzn1.echo-sdk-ams.app.ef1f54cb-cabe-429b-b8a1-5a4090e5f937 
2016-07-22T05:27:58.040Z 0c6d7a9b-4fcd-11e6-84e8-6b679452fe6e vik::::::::::::: before service call 
2016-07-22T05:27:58.078Z 0c6d7a9b-4fcd-11e6-84e8-6b679452fe6e url to invoke is:https://en.wikipedia.org/w/api.php?action=query&prop=extracts&format=json&explaintext=&exsectionformat=plain&redirects=&titles=Jan_21 
END RequestId: 0c6d7a9b-4fcd-11e6-84e8-6b679452fe6e 
REPORT RequestId: 0c6d7a9b-4fcd-11e6-84e8-6b679452fe6e Duration: 398.63 ms Billed Duration: 400 ms Memory Size: 128 MB Max Memory Used: 17 MB 

ich bin nicht sicher, was falsch ist und wie es zu debuggen

+1

Der Aufruf ist asynchron und die Lambda-Funktion löst wahrscheinlich auf, bevor Daten zurückgeholt werden. Eine Sache, die ich versuchen würde, ist, die Lambda-Funktion irgendwo zu beenden, indem Daten mit der Callback-Funktion zurückgegeben werden. Ansonsten bin ich mir nicht sicher, wie sich Lambda verhalten wird, wenn es alleine beendet wird. http://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-handler.html. – master565

+0

Hier ist jemand erfolgreich zu tun, was Sie versuchen http://stackoverflow.com/questions/28449363/why-is-this-http-request-not-working-on-aws-lambda – master565

+0

Ich verwende keinen Kontext überhaupt etwas tun. also nicht sicher, ob es relevant ist – Vik

Antwort

1

es funktioniert jetzt. Das Problem war zu testen, dass ich es in den Launch Intent und direkt nach der Antwortkarte legte. Dies rief die context.succeed auf und löschte sie, bevor sie abgeschlossen wurde.

+0

Würden Sie diesen Code hochladen? – probbins222