alexa 技能 web 服务调用不会发生
alexa skill webservice call does not happen
我正在尝试调用维基百科服务的历史虚张声势示例。我把电话放在开始消息中。我可以看到它正在打印我的消息,直到它到达调用 stmt 为止。但随后它在控制台中什么也不打印。代码如下所示:
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);
});
}
控制台打印像
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
我不确定哪里出了问题以及如何调试它
现在可以了。问题是测试我把它放在启动意图和响应卡之后。这是在调用 context.succeed 并在它完成之前将其杀死。
我正在尝试调用维基百科服务的历史虚张声势示例。我把电话放在开始消息中。我可以看到它正在打印我的消息,直到它到达调用 stmt 为止。但随后它在控制台中什么也不打印。代码如下所示:
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);
});
}
控制台打印像
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
我不确定哪里出了问题以及如何调试它
现在可以了。问题是测试我把它放在启动意图和响应卡之后。这是在调用 context.succeed 并在它完成之前将其杀死。