Мы в Telegram
Добавить новость
103news.com
Работа
Октябрь
2018

Telegram bot прототип на node js

0
(картинки что то плохо масштабируются, по запросу сброшу оригинальные ссылки, либо сами перейдите по ссылке)

Требуется реализовать telegram бота (прототип)
Прототип подразумевает не продакшн версию

Студии\агенства не интересуют

Использовать клиента https://github.com/telegraf/telegraf (либо аргументированно предложить другой клиент)

WorkFlow
- пользователь переходит по ссылке, в сылке зашита какая то строка (это результат того что сработал /start с аргументами)
- сохранили пользователя (username, ID (первичная информация по поьзователю) + то что было в аргументах запроса)
- (если ранее не было пользователя в базе) запросили имя, далее возраст (в 2 шага) и сохранили в БД
- (если данные о пользователе ранее были) то переходим к главному меню. На главное меню не попасть и ни какую другую команду не вызвать если пользователь не ввел свое имя и возраст
- В главно меню три пунтка меню
- [1] Редактировать данные
- [2] Пройти опрос
- [3] Мои ответы
- Ожидаемые события в главном меню:
- [4] Клиент отправляет текущую локацию
- [5] Клиент отправляет live текущей локации

В случае [1] переходим на экраны редактирования своих данных. В каждом сообщении есть кнопка (inline button) завершить редактирование при клике на которую переходим обратно на главное меню.



При клике на [2] (иммитируем взятие случайного вопроса из базы). Формат вопроса простой - есть текст сообщения и 3-5 вариантов ответа, либо свой вариант.
В случае если вопрос состоит из нескольких вопросов `querion_next` не пустой - то после полученного ответа (иммитируем) отображение следующего запроса.

Структура данных
```json
querion_id: "",
question_text: "Какой вам больше нравится шоколад?", // Текст сообщения
next_question: "", // Идентификатор следующего вопроса
free_answer: false, // если true то позволено клиенту отправить ответ в свободной форме. В противном случае обязательно надо выбрать ответ
choices: [
{text: "Белый", id: "1"},
{text: "Горький", id: "2"},
{text: "Молочный", id: "3"},
]
```

[3] отображаем с пагинацией (по 3 позиции) последние ответы на вопросы в формате `Текст сообщения: ответ`.
Пагинацию делать как в боте @spotifybot





В обоих случаях [4], [5] бот отправляет ту же полученную локацию (echo) в период 30 секунд. Обновлять сообщение а не добавлять новое.

Иммитируем работу с БД - в глобальном окружении создать мапу и там хранить пользователей
Иммитируем сохранение в БД всех ответов пользователей
Иммитируем взятие из БД вопросы - зашить в коде массив вопросов. Не рассматриваем случай если вопросы зацикливаются
В лог логировать все получаемые и отправляемые данные

Результат работы в виде
- package.json файла с перечисленными нужными пакетами и прочим для первичного сетапа проекта
- index.js (в коде зашит токен от бота)

По команде `node index.js` должен запускаться сервер




Губернаторы России
Москва

Собянин: Число пользователей портала «Малый бизнес Москвы» превысило 200 тысяч





Москва

Книжные новинки, лаборатория текста и иллюстраций — ждут гостей Московского детского фестиваля искусств «НЕБО»


Губернаторы России

103news.net – это самые свежие новости из регионов и со всего мира в прямом эфире 24 часа в сутки 7 дней в неделю на всех языках мира без цензуры и предвзятости редактора. Не новости делают нас, а мы – делаем новости. Наши новости опубликованы живыми людьми в формате онлайн. Вы всегда можете добавить свои новости сиюминутно – здесь и прочитать их тут же и – сейчас в России, в Украине и в мире по темам в режиме 24/7 ежесекундно. А теперь ещё - регионы, Крым, Москва и Россия.

Moscow.media
Москва

Сергей Собянин: фонд музея "Царицыно" собрал 61 тыс. произведений искусства



103news.comмеждународная интерактивная информационная сеть (ежеминутные новости с ежедневным интелектуальным архивом). Только у нас — все главные новости дня без политической цензуры. "103 Новости" — абсолютно все точки зрения, трезвая аналитика, цивилизованные споры и обсуждения без взаимных обвинений и оскорблений. Помните, что не у всех точка зрения совпадает с Вашей. Уважайте мнение других, даже если Вы отстаиваете свой взгляд и свою позицию. 103news.com — облегчённая версия старейшего обозревателя новостей 123ru.net.

Мы не навязываем Вам своё видение, мы даём Вам объективный срез событий дня без цензуры и без купюр. Новости, какие они есть — онлайн (с поминутным архивом по всем городам и регионам России, Украины, Белоруссии и Абхазии).

103news.com — живые новости в прямом эфире!

В любую минуту Вы можете добавить свою новость мгновенно — здесь.

Музыкальные новости

Тимати

«Ты кого здесь уму-разуму учить собрался? Берега не путай», — Киркоров получил претензию от Тимати




Спорт в России и мире

Алексей Смирнов – актер, которого, надеюсь, еще не забыли

МегаФон привёз спасателям и пожарным грузовик связи

Больше всего работников с креативными идеями работает в ритейле и спорте

VK Fest 2024: Музыка и Развлечения на Открытых Площадках России


Ролан Гаррос

Арина Соболенко повторила уникальное достижение Азаренко на турнирах «Большого шлема»



Новости Крыма на Sevpoisk.ru


Москва

Два мотоциклиста попали в ДТП на Смоленской площади в Москве



Частные объявления в Вашем городе, в Вашем регионе и в России