javascript - 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',
};
有人能帮我吗?
解决方案
推荐阅读
- python - 我的 python Minecraft 副本有问题
- mysql - 如何使用 where 条件计算值,我们可以根据其他表日期放置开始日期和结束日期
- python - 如何让docker容器连续运行?
- angular - 你如何为 RxJS Angular bufferTime 运算符编写单元测试?
- python - PyautoGUI-如何使用 If - Else 与 pyautogui.locateCenterOnScreen
- jasper-reports - Jasperreports Studio - 检查子报表中的行是否包含特定值
- c# - 哪种事件参数方法更可取?
- kdb - 使用 Over 连接 kdb+ 中的枚举和符号列
- python - 精确计算 Keras 模型中的操作数(不仅是 FLOP)
- scala - Scala Akka 容错/监督不起作用