Телеграм бот
Структура бд начальная, можно внести свои коррективы.
users
| id | chat_id | tgid | tgname | phone |
users_actions
| user_id | message |
admins
| id | chat_id | tgid | tgname | phone | status |
subbuttons1
| id | text | status |
subbuttons2
| id | text | status |
support_dialogs
поля таблицы исходя из п.5.1.
Алгоритм работы бота:
1. Приветственное сообщение всем, кто зашел в бот.
1.1. Проверяем по бд в поле admins, присутствует ли данный пользователь. Если у пользователя tgid или tgname не совпадает с тем, что есть в бд, тогда просим его поделиться номером телефона и проверяем, есть ли такой номер в admins. Если нашли такого админа по любому идентификатору, то выводим сообщение "Админ, Вы авторизованы, ожидайте дальнейших сообщений." Любые сообщения в таком случае от пользователя игнорируются. Если же такого пользователя нет в таблице admins, тогда переходим к п. 1.2.
1.2. Проверяем по бд в поле users, присутствует ли данный пользователь. Если у пользователя tgid или tgname совпадает с тем, что есть в бд, тогда переходим к п.2., иначе просим его поделиться номером телефона и проверяем, есть ли такой номер в бд в таблице users. Если есть, то также переходим к п.2. Если нет, то выводим сообщение "Вы не авторизованы".
2. Далее в диалоге выводим две кнопки "Кнопка 1" и "Кнопка 2".
3. Если пользователь пишет произвольное сообщение в бот, не выбрав ни одну кнопку - пишем сообщение, что нужно выбрать один из вариантов и снова выводим эти две кнопки.
4. Если выбрана "Кнопка 1" пользователем, то:
4.1. Выводим сообщение "Текст сообщения до кнопки 1"
4.2. Выводим дополнительные кнопки в диалоге списком, которые берутся из бд таблицы subbuttons1 если status= active. Поле text является названием кнопки.
4.3. Далее пользователь должен выбрать одну из выведенных кнопок. Если пишет произвольное сообщение на данном этапе, не выбрав кнопку, повторно выводим ему кнопки из п. 4.2. с сообщением "Нужно выбрать один из вариантов для продолжения". Выбранный вариант кнопки запоминаем для дальнейшего использования.
4.4. Выводим дополнительные кнопки в диалоге списком, которые берутся из бд таблицы subbuttons2 если status= active. Поле text является названием кнопки.
4.5. Далее пользователь должен выбрать одну из выведенных кнопок. Если пишет произвольное сообщение на данном этапе, не выбрав кнопку, повторно выводим ему кнопки из п. 4.4. с сообщением "Нужно выбрать один из вариантов для продолжения". Выбранный вариант кнопки запоминаем для дальнейшего использования.
4.6. Теперь имея два варианта нажатых кнопок из п.4.2. и п. 4.4. выводим сообщение "Введите произвольное число". Проверяем, является ли это числом, может быть и не целое значение с округлением до тысячных. Запоминаем это число. Если было введено некорректное число или произвольное сообщение, выводим "Введите произвольное число для продолжения".
4.7. Выводим сообщение следующего формата:
- Вы выбрали: "Текст выбранной кнопки из subbuttons1"
- Вы выбрали: "Текст выбранной кнопки из subbuttons2"
- Ваше число: "Введенное число"
- Две кнопки "ОК" и "Отмена"
4.8. Если нажата "ОК" выводим сообщение "Сообщение при нажатой ОК" и записываем сообщение из п.4.7. в бд в таблицу users_actions и выводим его в этом же боте для пользователей из таблицы admins у которых статус active.
4.9. Если нажата "Отмена" выводим сами первые две кнопки из п.2. Если введено произвольное сообщение вместо выбранных вариантов, то выводим текст "Нужно выбрать один из вариантов для завершения".
5. Если выбрана "Кнопка 2" то выводим сообщение:
- Напишите свой вопрос и мы ответим на него.
5.1. Здесь нужно сделать сохранение написанного пользователем сообщения или нескольких сообщений в нашу бд в таблицу support_dialogs.
Отзыв заказчика о сотрудничестве с Дмитро Дереном
Телеграм ботПрофессионально, быстро и продуманно реализованы поставленные задачи. Дмитрий предвидит заранее множество нюансов, которые могут возникать в ходе работы конечного продукта. Рекомендую к сотрудничеству, и сам буду обращаться еще!
Отзыв фрилансера о сотрудничестве с Олександром Стасюком
Телеграм ботEverything went great, Alexander provided a clear brief, was always in touch, promptly answered questions
Актуальные фриланс-проекты в категории Веб-программирование
Full-stack разработка — Amazon PPC Dashboard (Stage 1)Нужен full-stack разработчик с опытом работы с Amazon API для реализации Stage 1 внутреннего PPC-дашборда. Проект реальный, данные живые, всё готово к старту. Прототип фронтенда (5 страниц, React + TypeScript): ЧТО УЖЕ ГОТОВО — Фронтенд-прототип на React 18 + TypeScript + Vite… Javascript и Typescript, Веб-программирование ∙ 2 минуты назад |
Разработка сайта на WordPress для IT-компании
10 000 UAH
Ищем WordPress-разработчика для создания небольшого сайта компании, которая предоставляет IT-услуги. Проект не предполагает разработку дизайна с нуля — основные материалы уже подготовлены. У нас уже есть: структура сайта и карта страниц; готовые тексты для страниц; логотип;… Веб-программирование ∙ 7 часов 39 минут назад ∙ 62 ставки |
OpenCart — каталог аренды спецтехники
6000 UAH
OpenCart — каталог аренды спецтехникиНеобходимо запустить каталог аренды спецтехники на OpenCart.Тематика:экскаваторыавтовышкипогрузчикигенераторыкраныстроительные лесадругая строительная техника.Желательно, чтобы у вас уже был готовый шаблон или наработки под спецтехнику,… Веб-программирование, Парсинг данных ∙ 8 часов 12 минут назад ∙ 42 ставки |
Необходимо реализовать передачу офлайн конверсий из SalesDrive в Google Ads и Google Analytics
12 000 UAH
Сайт на OpenCart > лиды попадают из GA4 в CRM Salesdrive > оттуда их нужно передать в Google Ads, связав лид и закрытую сделку и её ценность Вместе с CRM Salesdrive используется колтрекінг Binotel Также интересует возврат событий о закрытой сделке из CRM в GA4. Сейчас GA4… Веб-программирование ∙ 13 часов 47 минут назад ∙ 22 ставки |
Настройка ПРРО Checkbox для интернет-магазина и обучение работе с нимБлок 1. Регистрация и базовая настройка: Помощь с подачей необходимых заявлений (20-ОПП, 1-ПРРО, 5-ПРРО) через электронный кабинет налогоплательщика. Полная настройка кабинета в системе Checkbox (добавление номенклатуры, настройка налоговых ставок и т.д.).Блок 2. Интеграция с… Бухгалтерские услуги, Веб-программирование ∙ 13 часов 56 минут назад ∙ 16 ставок |