TwilioQuest
构建一个小型web应用程序来支持我们的待办事项机器人。你的机器人应该收到一条文本消息,查看消息的正文,然后用确认短信响应三个命令之一:"add {{ thing to do }}“- add命令应该将一件事情添加到待办事项列表中。例如,“添加购买牛奶”应该添加一个名为“购买牛奶”“列表”的项目-列表命令应该在一个编号列表中返回待办事项列表中的每个项目。包含两个项目的列表将返回"1.购买牛奶2.洗衣“"remove #”- remove命令应根据项目在列表中的位置从待办事项列表中删除该项目。因此,“删除2”将从上面删除“洗衣”项。要完成此目标,请在您的待办事项列表中添加一个名为“完成此目标”的项目。你的待办事项应用程序应该回复一条短信,确认该项目已添加。然后在下面给我们你的待办事项机器人的电话号码。
我在这篇twilio教程中使用了NodeJS,我不确定如何设置编号列表和删除列表。到目前为止,我已经设置好了
const http = require('http');
const express = require('express');
const MessagingResponse = require('twilio').twiml.MessagingResponse;
const bodyParser = require('body-parser');
const app = express();
app.use(bodyParser.urlencoded({ extended: false }));
app.post('/sms', (req, res) => {
const twiml = new MessagingResponse();
if (req.body.Body == 'add') {
twiml.message('buy milk');
...
...
);
}
res.writeHead(200, { 'Content-Type': 'text/xml' });
res.end(twiml.toString());
});
http.createServer(app).listen(1337, () => {
console.log('Express server listening on port 1337');
});
--需要想出这个-在您的web应用程序中创建一个新变量来存储我们用户的待办事项。在本练习中,不要担心让您的机器人同时支持多个用户。
更改web应用程序中的"/sms“路由,查看每条传入文本消息中的第一个单词,如果命令为" add ",则查看它是否与我们的任何命令匹配,然后将消息正文的其余部分作为条目添加到待办事项列表变量中。
如果命令是" list ",则使用待办事项列表变量中每个项目的编号列表来回复文本消息。
如果命令是" remove ",则使用用户指定的数字从待办事项列表变量中删除该项。
我需要帮助如何为我的待办事项列表机器人设置列表和删除命令
发布于 2019-06-13 04:06:53
代码应该如下所示:
var itemList = [];
app.post('/sms', (req, res) => {
const twiml = new MessagingResponse();
const splitContent = req.body.Body.split(' ');
switch (splitContent[0]) {
case 'add':
itemList.push(splitContent.slice(1).join(' ')); // Slice 1 to start at the second item
twiml.message('Item added');
break;
case 'list':
var result = ''
var i = 1;
itemList.forEach(o => {
result += `${i}. ${o}\n`;
i++;
});
twiml.message(result);
break;
case 'remove':
itemList.splice(splitContent[1] - 1, 1); // Subtract 1 to get the index
twiml.message('Item removed');
break;
}
res.writeHead(200, { 'Content-Type': 'text/xml' });
res.end(twiml.toString());
});
https://stackoverflow.com/questions/56569261
复制相似问题