@SimpleDemoBot - Telegram Bot на PHP
# @SimpleDemoBot - Telegram Bot на PHP
## Описание проекта
@SimpleDemoBot — это Telegram-бот, разработанный на PHP с использованием Telegram Bot API. Он предназначен для демонстрации навыков создания интерактивных ботов, способных автоматизировать задачи, обрабатывать пользовательские запросы и интегрироваться с внешними системами. Бот подходит как для личных, так и для бизнес-проектов, обеспечивая удобное взаимодействие с пользователями через команды и интерактивные меню.
## Основные функции
- Обработка команд: Поддержка команд /start
, /help
, /about
для взаимодействия с пользователями.
- Интерактивное меню: Пользовательская клавиатура с опциями ("О боте", "Услуги", "Контакты").
- Вебхуки: Эффективная обработка сообщений в реальном времени через вебхуки.
- Управление состоянием: Отслеживание контекста для многоэтапных процессов (например, оформление заказов).
- Логирование: Запись взаимодействий для отладки и мониторинга.
## Технические детали
- Язык программирования: PHP 8.2+
- Библиотека: telegram-bot-sdk
для упрощенной работы с Telegram Bot API
- Хостинг: Требуется сервер с поддержкой HTTPS и SSL-сертификатом (например, Let’s Encrypt)
- База данных: Опционально MySQL для хранения логов или пользовательских данных
- Основные методы: setWebhook
, sendMessage
, reply_markup
для создания меню
## Пример кода
Ниже приведен упрощенный код на PHP, демонстрирующий настройку вебхука и обработку команд с использованием библиотеки telegram-bot-sdk
.
```php
<?php
require 'vendor/autoload.php';
use TelegramBot\Api\Client;
use TelegramBot\Api\Types\Update;
$token = 'YOUR_BOT_TOKEN'; // Замените на токен от BotFather
$bot = new Client($token);
// Настройка вебхука
$webhookUrl = 'https://yourdomain.com/bot/webhook.php';
$bot->setWebhook($webhookUrl);
// Обработка команды /start
$bot->command('start', function ($message) use ($bot) {
$chatId = $message->getChat()->getId();
$welcomeMessage = "Добро пожаловать в @SimpleDemoBot! Используйте меню ниже.";
$keyboard = [
[['text' => 'О боте', 'callback_data' => '/about']],
[['text' => 'Услуги', 'callback_data' => '/services']],
[['text' => 'Контакты', 'callback_data' => '/contact']]
];
$replyMarkup = json_encode(['inline_keyboard' => $keyboard]);
$bot->sendMessage($chatId, $welcomeMessage, 'HTML', false, null, $replyMarkup);
});
// Обработка команды /about
$bot->command('about', function ($message) use ($bot) {
$chatId = $message->getChat()->getId();
$bot->sendMessage($chatId, "Это демонстрационный бот на PHP для Telegram.");
});
// Логирование сообщений
$bot->on(function (Update $update) {
$data = $update->toJson();
file_put_contents(__DIR__ . '/logs/message.txt', date('Y-m-d H:i:s') . " $data\n", FILE_APPEND);
}, function () { return true; });
$bot->run();
```
## Установка и настройка
1. Создание бота:
- Зарегистрируйте бота через @BotFather
в Telegram и получите токен.
2. Настройка вебхука:
- Разверните HTTPS-сервер и настройте вебхук с помощью метода setWebhook
.
3. Установка зависимостей:
- Установите библиотеку telegram-bot-sdk
через Composer:
```bash
composer require irazasyed/telegram-bot-sdk
```
4. Развертывание:
- Загрузите PHP-скрипт на сервер, убедитесь, что URL вебхука доступен.
5. Тестирование:
- Проверьте работу бота, отправив команды в Telegram.
## Применение
- Бизнес: Автоматизация обработки запросов клиентов, уведомления, оформление заказов.
- Личные проекты: Создание ботов для напоминаний, информационных запросов или развлечений.
- Интеграции: Подключение к CRM, базам данных или внешним API для расширения функционала.
## Преимущества
- Масштабируемость: Модульная структура для добавления новых функций.
- Надежность: Вебхуки обеспечивают быструю обработку запросов.
- Удобство для пользователей: Интуитивно понятные клавиатуры для навигации.
## Ресурсы
- Репозиторий: [https://github.com/aleksandrmajlo/php_telegram_bot_overlay]
- Демо: Попробуйте @SimpleDemoBot в Telegram
- Документация: [Telegram Bot API](https://core.telegram.org/bots/api)
- Контакты: [Ваши контакты для связи]
## Планы по улучшению
- Интеграция с базой данных для хранения пользовательских данных.
- Поддержка инлайн-запросов для динамического контента.
- Добавление ИИ-ответов через внешние API.
## Лицензия
MIT License. Подробности см. в файле LICENSE
.