Помочь решить проблему с WebApp в боте телеграме
Добрый день, нужна помощь с разработкой бота в телеграме с использованием WebApp
Основные компоненты бота
- Веб-приложение (index.html): Интерфейс для выбора даты и времени бронирования, который интегрирован в Telegram как WebApp.
- Файл конфигурации (.env): Содержит необходимые настройки, такие как токен бота, ID группы для получения бронирований и URL веб-приложения.
- Скрипт бота (bot_start.py): Основной код бота, который обрабатывает взаимодействие с пользователем.
- Файл зависимостей (requirements): Определяет необходимые библиотеки для работы бота.
Подробное описание работы бота
1. Начало взаимодействия (/start)
- Команда
/startзапускает диалог с пользователем. - Бот приветствует пользователя и предлагает два варианта действий:
- "Забронировать столик"
- "Просмотреть меню"
2. Просмотр меню
- Если пользователь выбирает "Просмотреть меню", бот отправляет ссылку на меню (
https://gustouapp.com/menu) и возвращает пользователя к начальному выбору действий.
3. Бронирование столика
Выбор заведения
- При выборе "Забронировать столик", бот просит выбрать одно из доступных заведений (например,
'Ул. Антоновича'или'пр-т. Тичины').
Выбор даты и времени
- После выбора заведения бот отправляет кнопку "Выбрать дату и время", которая открывает WebApp (ваш
index.html). - Веб-приложение использует библиотеку Flatpickr для удобного выбора даты и времени.
- Пользователь выбирает желаемую дату и время.
- После подтверждения, выбранная дата и время отправляются обратно к боту через
window.Telegram.WebApp.sendData(selectedDatetime).
Обработка данных из WebApp
- Бот получает выбранную дату и время и подтверждает их пользователю.
- Далее бот запрашивает количество гостей.
4. Ввод количества гостей
- Пользователь вводит количество гостей.
- Бот проверяет, является ли введенное значение корректным числом больше нуля.
- После подтверждения, бот просит указать имя.
5. Ввод имени
- Пользователь вводит свое имя.
- Бот сохраняет имя и переходит к выбору способа предоставления контактного номера телефона:
- "Ввести номер вручную"
- "Поделиться контактом"
6. Предоставление контактного номера телефона
Выбор способа предоставления номера
- "Ввести номер вручную":
- Бот просит ввести номер в формате
+380XXXXXXXXX. - Проверяет корректность введенного номера.
- Бот просит ввести номер в формате
- "Поделиться контактом":
- Бот предоставляет кнопку для обмена контактом.
- Пользователь нажимает кнопку, и его номер телефона автоматически отправляется боту.
7. Завершение бронирования
- После получения всех необходимых данных (заведение, дата и время, количество гостей, имя, телефон), бот формирует информацию о бронировании.
- Информация о бронировании отправляется в групповой чат (
GROUP_CHAT_ID), где администраторы могут ее просмотреть и подтвердить. - Бот благодарит пользователя за бронирование и предлагает:
- "Вернуться к началу"
- "Просмотреть меню"
8. Обработка ошибок и отмена
- Если возникает ошибка при отправке бронирования, бот сообщает пользователю о необходимости попробовать еще раз.
- Пользователь может отменить процесс бронирования командой
/cancel, и бот возвращает его в начальное состояние или завершает разговор.
Взаимодействие между компонентами
- Пользователь начинает взаимодействие с ботом через Telegram.
- Бот обрабатывает команды и сообщения, управляя состоянием разговора с помощью
ConversationHandler. - При выборе даты и времени, бот открывает WebApp (ваш
index.html) в Telegram. - Веб-приложение позволяет пользователю выбрать дату и время, после чего отправляет эти данные обратно к боту.
- Бот получает эти данные, продолжает процесс бронирования, собирая необходимую информацию.
- После завершения, бот отправляет информацию о бронировании в указанную группу для дальнейшей обработки.
Проблема в том, что когда открывается WebApp он всегда показывает что открыт не через телеграм, ниже примеры файлов бота
Приложения 1
Отзыв заказчика о сотрудничестве с Ivan O.
Помочь решить проблему с WebApp в боте телеграмеОчень быстро выполнил работу
Отзыв фрилансера о сотрудничестве с Андрієм Спірідоновим
Помочь решить проблему с WebApp в боте телеграмевсе прошло легко и просто. рекомендую
-
Добрый день
Знаю, в чем у Вас проблема и как ее решить
Готов это сделать прямо сейчас.
-
369 1 0 Добрый день, попробую заняться вашим ботом.
Я уже имела дело с ботами, поэтому у меня есть представление, что нужно делать!
Хотелось бы в лс узнать больше подробностей
Актуальные фриланс-проекты в категории Python
Создание многофункционального бота в Телеграм
1000 UAH
(Все материалы предоставлю в приватные сообщения) Вот детальное описание проекта: После нажатия кнопки /start Бот присылает текст с правилами и условиями пользования (под текстом, кнопка ‘ознакомлен’) После нажатия на кнопку, следующее сообщение ‘проверка на подписку’ Три… Python, Разработка ботов ∙ 1 день 15 часов назад ∙ 88 ставок |
Найти товарный фид (Google Merchant XML) для сайта на OpenCart
700 UAH
Необходимо найти прямую ссылку на действующий товарный фид (XML) конкурента для Google Merchant Center Платформа (CMS): OpenCart / ocStore Найти оригинальный фидТребования к результату: Рабочая ссылка на XML-файл Python, Парсинг данных ∙ 4 дня 4 часа назад ∙ 25 ставок |
Розработка Тик-Ток фермы (контент-завод)Необзодимо разработать систему для централизованного управления несколькими TikTok-аккаунтами с автоматической публикацией контента, использованием индивидуальных прокси и имитацией естественной активности аккаунтов. Функциональные требования1. Управление аккаунтами Добавление… Python, Разработка ботов ∙ 4 дня 15 часов назад ∙ 19 ставок |
Улучшить работу Claude Code и работа с написанием софтаСейчас разрабатываю СРМ и Аналитику, софт. Делаю через Клод Код, но понимаю что результаты не лучшие в плане изменений. Есть 2 задачи - Нужно помочь сделать пресет по навыкам, мд и так далее чтобы улучшить качество. Взять проверенные с которыми работали, а не с интернета… AI и машинное обучение, Python ∙ 4 дня 22 часа назад ∙ 25 ставок |
Система OCRНужна система распознавания текста на почтовых конвертах (индекс кому - только числа). Текст иногда может быть рукописным. Распознавание марок (подсчет количества и номинала) Python ∙ 5 дней 1 час назад ∙ 28 ставок |