Создание мини-приложения для записи на прием к врачу в Telegram на React

Никита Калашников
В последние годы Telegram активно развивает свою платформу, позволяя разработчикам создавать мини-приложения (Mini Apps) с использованием веб-технологий. Эти мини-приложения можно использовать для выполнения различных задач, включая запись на прием к врачу. В этой статье мы рассмотрим процесс создания такого мини-приложения с использованием React.
Требования
Перед тем как начать, убедитесь, что у вас установлены следующие инструменты:
- Node.js и npm (или Yarn)
- React
- Telegram аккаунт
- Ngrok (для локального тестирования)
Шаг 1: Настройка окружения React
1. Создайте новый проект React, используя Create React App:
1npx create-react-app telegram-doctor-appointment
2cd telegram-doctor-appointment
2. Удалите стандартные файлы и подготовьте минимальное окружение, оставив только следующие файлы:
src/index.jssrc/App.jssrc/App.css
Шаг 2: Подключение к Telegram Web Apps
Telegram предоставляет специальный объект window.Telegram.WebApp, который мы будем использовать для взаимодействия с Telegram Web Apps API.
1. В файле src/App.js добавьте следующий код:
1import React, { useEffect } from 'react';
2
3function App() {
4 useEffect(
2. Теперь у нас есть базовое приложение, которое взаимодействует с Telegram Web Apps API. Этот код готовит мини-приложение и добавляет кнопку для его закрытия.
Шаг 3: Создание интерфейса для записи
1. Обновите src/App.js, добавив форму для записи на прием:
1import React, { useState, useEffect } from 'react';
2
3function App() {
4 const
Шаг 4: Настройка вебхука и тестирование
1. Для того чтобы Telegram мог взаимодействовать с вашим приложением, оно должно быть доступно по HTTPS. Если вы разрабатываете локально, используйте ngrok для создания туннеля:
1ngrok http 3000
Скопируйте выделенный URL и настройте его как WebApp URL в Telegram BotFather, чтобы ваш бот мог работать с мини-приложением.
2. Теперь вы можете запустить приложение и протестировать его:
1npm start
Ваше мини-приложение должно быть доступно в браузере и через ngrok-ссылку.
Шаг 5: Получение данных в боте
Теперь, когда пользователи отправляют данные через ваше мини-приложение, бот будет получать их в виде строки JSON. В вашем Telegram боте, который вы создавали ранее, нужно настроить обработку этих данных:
1. В вашем боте на Node.js добавьте обработку данных:
1const { Telegraf } = require('telegraf');
2const bot = new Telegraf('YOUR_BOT_TOKEN');
3
4
2. Теперь бот сможет получать данные, отправленные из вашего мини-приложения, и отвечать пользователю.
Заключение
Это простой пример создания веб-приложения для интеграции с telegram mini app. Возможности для создания, развития и масштабирования ограничены лишь вашим воображением.