首页 > 解决方案 > Alexa 无法连接

问题描述

我正在尝试将 alexa 与我的网站连接起来。我创建了一个 Alexa 技能(按照指南),它可以与“numbersapi”之类的网站连接,它会询问用户一个数字并阅读该网站给出的答案。这是代码:

function httpGet(query) {
return new Promise((resolve, reject) => {

var options = {
    host: 'numbersapi.com',
    path: '/' + encodeURIComponent(query),
    method: 'GET',
};  

var req = http.request(options, res => {
    res.setEncoding('utf8');
    var responseString = "";

    //accept incoming data asynchronously
    res.on('data', (chunk) => {
        responseString = responseString + chunk;
    });

    //return the data when streaming is complete
    res.on('end', () => {
        resolve(responseString);
    });
    res.on('error',(error) => {
        reject(error);
    });
});
req.end();

}); }

和意图:

const questionIntentHandler = {
canHandle(handlerInput) {
     return handlerInput.requestEnvelope.request.type === 'IntentRequest'
        && handlerInput.requestEnvelope.request.intent.name === 'questionIntent';
    },
handle(handlerInput) {
    const theNumber = handlerInput.requestEnvelope.request.intent.slots.info.value;
    var query = parseInt(theNumber);
    return new Promise((resolve,reject) => {
        httpGet(query).then((response) => {
            resolve(handlerInput.responseBuilder
            .speak(response)
            .withShouldEndSession(false)
            .getResponse());
            }).catch ((error) => {
                resolve(handlerInput.responseBuilder.speak('Request error').getResponse());
            });
    });
},

};

它工作得很好。现在我正在尝试将它用于我非常简单的网站,但我无法让它工作。我在一个 jsp 中创建了一个简单的表单,它发送一个数字并打开另一个 jsp 页面,其中基于该数字显示一个字符串。更改要在 url 中显示的数字有效,但是当我尝试通过 alexa 应用数字时它不起作用。我认为我的选项有问题。

 var options = {
    host: 'localhost',
    path:  '/SearchFact?info=' + encodeURIComponent(query),
    method: 'GET',
};

有人能帮我吗?

标签: javascriptnode.jseclipsealexa

解决方案


推荐阅读