Как настроить список Todo для получения и отправки SMS с Twilio - PullRequest
1 голос
/ 12 июня 2019

TwilioQuest

Создайте небольшое веб-приложение для питания нашего To-do Bot. Ваш бот должен получить текстовое сообщение, просмотреть текст сообщения, а затем отправить SMS-сообщение с подтверждением на одну из трех команд: «добавить {{вещь, чтобы сделать}}» - команда добавления должна добавить вещь в список дел список. Например, «add buy milk» должен добавить элемент с именем «buy milk» «list» - команда list должна вернуть каждый элемент списка дел в нумерованном списке. Список из двух элементов будет возвращать «1. Купить молоко 2. Стирать одежду» «удалить #» - команда удаления должна удалить элемент из списка дел в соответствии с его положением в списке. Таким образом, «удалить 2» удалит элемент «Стирать одежду» сверху. Чтобы выполнить эту задачу, добавьте элемент в список дел, который называется «Выполнить эту задачу». Ваше приложение должно сделать ответ с SMS, подтверждающим, что элемент был добавлен. Затем дайте нам номер телефона вашего To-do Bot ниже.

Я использую NodeJS для этого учебника twilio, и я не уверен, как настроить нумерованный список и удалить список. Я настроил это до сих пор

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');
});

- нужно придумать это --- Создайте новую переменную в своем веб-приложении для хранения задач нашего пользователя. Для этого упражнения не беспокойтесь о том, чтобы ваш бот поддерживал более одного пользователя одновременно.

Измените маршрут "/ sms" в вашем веб-приложении, чтобы посмотреть первое слово в каждом входящем текстовом сообщении и посмотреть, соответствует ли оно какой-либо из наших команд Если команда «добавить», добавьте оставшуюся часть тела сообщения в качестве записи в переменную списка дел.

Если команда «список», то ответьте на текстовое сообщение нумерованным списком каждого элемента в вашей переменной списка дел.

Если команда «удалить», то используйте номер, указанный пользователем, чтобы удалить этот элемент из переменной списка дел.

Мне нужна помощь о том, как настроить список и удалить команду для моего бот-листа списка задач

1 Ответ

1 голос
/ 12 июня 2019

Код должен выглядеть примерно так:

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());
});
...