@SimpleDemoBot - Telegram Bot на PHP

Веб-программирование
16 просмотров
25.07.2025
1377×909257 КБ
Monosnap Telegram 2025-07-25 14-19-28.png

# @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.