Яндекс.Метрика
qr-код - Как-то так стрелка - Как-то так
Ведущий экономист + ... пиктограмма - Как-то Так THIS     Экономическая грамотность и web-решения
Всё по теме: что, как и почему. Актуальные вещи - своими словами.
Повышайте своё качество WITH ME - СПЭМ !
Если тебе не нравится то, что ты получаешь, измени то, что ты даешь. © Карлос Кастанеда     KAKTOTAK.BY - услуги по экономическому проектированию и web-разработке (php/js - telegram, WordPress, Laravel, Vue, SEO)    Кооперация - на постоянной основе    Будь в теме   -    ПОДПИШИСЬ      Мои заметки - ЭКОНОМИКА +  и  Справочник WEB-разработчика | php+js+seo   в Telegram   telegram  

Как создать Telegram-бота на PHP + Mysql - Пошаговое руководство

Как создать Telegram-бота на PHP + Mysql - Пошаговое руководство

Сейчас наиболее популярным в разработке является настройка взаимодействия клиентских приложений с Telegram. Это обеспечивает удобство коммуникаций на программном уровне с учетом того, что практически каждый пользователь интернета обзаведен данным приложением.

Как программно настроить данное взаимодействие в несколько простых шага?

Понимание данного алгоритма позволит вам расширять данную систему под свои цели.

Есть задача – создать телеграмм бота активировав которого (нажав кнопку старт) наше приложение получит Id этого пользователя, который будет сохранён в базу данных MYSQL в целях отправки ему сообщений и наоборот (от бота в личку пользователю), т.е. последующих коммуникации с ним от имени нашего телеграмм-бота.

Пошаговая инструкция:

Шаг 1: Создайте Telegram-бота

  • Откройте Telegram и найдите бота @BotFather.
  • Создайте нового бота, отправив команду /newbot.
  • Следуйте инструкциям для задания имени и username вашего бота.
  • После создания вы получите токен API (что-то вроде 123456789:ABCdefGhiJklMNOpQRstUvWxyZ). Сохраните его — он понадобится для отправки запросов к Telegram API.

Шаг 2: Настройка вебхука

  • Создайте файл setWebhook.php и добавьте в него следующий код:
        <?php
        $token = "ВАШ_ТОКЕН"; // Замените на ваш токен
        $url = "https://api.telegram.org/bot$token/setWebhook?url=ВАШ_URL/webhook.php"; // Замените на ваш URL
                
        $response = file_get_contents($url);
        echo $response;
        ?>
    
  • Запустите этот файл, чтобы установить вебхук.

Шаг 3: Создание обработчика сообщений

Создайте файл webhook.php, который будет принимать обновления от Telegram:

    <?php
    $update = json_decode(file_get_contents('php://input'), TRUE);

    if (isset($update['message'])) {
        $chat_id = $update['message']['chat']['id'];
        $text = $update['message']['text'];

        // Проверяем команду "/start"
        if ($text === '/start') {
            // Сохраняем ID пользователя в базу данных
            saveUserIdToDatabase($chat_id);

            // Отправляем приветственное сообщение
            sendMessage($chat_id, "Добро пожаловать в нашего бота!");
        }
    }

    function sendMessage($chat_id, $message) {
        $token = "ВАШ_ТОКЕН"; // Замените на ваш токен
        $url = "https://api.telegram.org/bot$token/sendMessage";

        $data = [
            'chat_id' => $chat_id,
            'text' => $message,
        ];

        file_get_contents($url . '?' . http_build_query($data));
    }

    function saveUserIdToDatabase($chat_id) {
        // Здесь ваш код для соединения с базой данных
        // и сохранения $chat_id
    }
    ?>
    

Шаг 4: Настройка базы данных

  • Создайте базу данных и таблицу для хранения user_id:
                CREATE DATABASE telegram_bot;
                USE telegram_bot;
    
                CREATE TABLE users (
                    id INT AUTO_INCREMENT PRIMARY KEY,
                    chat_id BIGINT NOT NULL
                );
                
  • Настройте соединение с базой данных в функции saveUserIdToDatabase:
    function saveUserIdToDatabase($chat_id) {
            $servername = "localhost"; 
            $username = "ВАШ_ПОЛЬЗОВАТЕЛЬ"; 
            $password = "ВАШ_ПАРОЛЬ"; 
            $dbname = "telegram_bot";
    
            // Создаем соединение
            $conn = new mysqli($servername, $username, $password, $dbname);
            
            // Проверяем соединение
            if ($conn->connect_error) {
                die("Ошибка подключения: " . $conn->connect_error);
            }
            
            // Сохраняем chat_id в базу данных
            $stmt = $conn->prepare("INSERT INTO users (chat_id) VALUES (?)");
            $stmt->bind_param("i", $chat_id);
            $stmt->execute();
            $stmt->close();
            $conn->close();
        }
        

Шаг 5: Тестирование

После того как вы установили вебхук и запустили ваш Telegram-бот, вы можете протестировать его, отправив команду /start. Вот шаги для проверки:

  • Отправьте команду /start вашему боту в Telegram.
  • Проверьте, что бот отвечает приветственным сообщением. Вы должны увидеть сообщение "Добро пожаловать в нашего бота!".
  • Проверьте базу данных. Откройте вашу базу данных и убедитесь, что chat_id вашего пользователя был успешно сохранён в таблице users.

Шаг 6: Отправка сообщений пользователю

Теперь, когда вы сохранили chat_id пользователя, вы можете отправлять ему сообщения из вашего приложения. Для этого вы можете использовать функцию sendMessageToUser.

    function sendMessageToUser($chat_id, $message) {
        $token = "ВАШ_ТОКЕН"; // Замените на ваш токен
        $url = "https://api.telegram.org/bot$token/sendMessage";

        $data = [
            'chat_id' => $chat_id,
            'text' => $message,
        ];

        file_get_contents($url . '?' . http_build_query($data));
    }
    

Шаг 7: Обработка дополнительных команд

Вы можете расширить функционал вашего бота, добавив обработку других команд или сообщений.

    if ($text === '/help') {
        sendMessage($chat_id, "Доступные команды: /start, /help");
    } elseif ($text === '/news') {
        sendMessage($chat_id, "Вот последние новости...");
    } else {
        sendMessage($chat_id, "Неизвестная команда. Наберите /help для списка доступных команд.");
    }
    

Шаг 8: Настройка безопасности и оптимизация

  • Безопасность: Убедитесь, что ваше приложение защищено от потенциальных атак (например, SQL-инъекций).
  • Логи: Настройте ведение логов для ошибок и запросов.
  • Тестирование: Проводите регулярное тестирование функциональности вашего бота.

Теперь мы имеете базовую настройку Telegram-бота на PHP, который может взаимодействовать с пользователями, получать их chat_id, и отправлять им сообщения. С помощью этого фрейма вы можете добавлять любые дополнительные функции и расширять возможности нашего бота в зависимости от потребностей.

автор - Михаленко Р.
M R. Автор - kaktotak.by Специализация: финансово-экономическое проектирование - моделирование бизнеса, инвестиционных проектов реального сектора, анализ и оценка эффективности, оптимизация системы управленческих решений.

Широкий спектр web-компетенций для решения задач бизнеса.

Подписывайтесь на мой телеграмм канал - Мои заметки - ЭКОНОМИКА +
Там я ничего не втюхиваю и не навязываю. Просто делюсь полезной информацией по экономической грамотности. Повышайте своё качество вместе со мной: что, как и почему в экономике на простом языке. Понятия, алгоритмы, процессы, микро- и макроаспекты и многое другое. Может, будет интересно !

А так же - Справочник WEB-разработчика | php+js+seo
Заметки и нативные решения простых локальных задач на PHP, JS. Кое-что про Laravel, WordPress, Vue и SEO.

  Персональная помощь в экономическом проектировании и веб-разработке:

  • Финансово-экономическое моделирование, анализ, учёт, бизнес-планирование
  • Комплексная web-разработка/поддержка проекта в сети (php/js, seo – Laravel, WordPress, Vue, telegram, администрирование, контент, реклама в Яндекс Директ

  telegram или форма обратной связи

Administrator
778

Конвертер валют
RUB RUB-icon
USD USD-icon
EUR EUR-icon
CNY CNY-icon
BYN BYN-icon
UAH UAH-icon
KZT KZT-icon
SHORT - о чём речь
ЭКОНОМИЧЕСКАЯ ГРАМОТНОСТЬ
Хочу Всё Знать. Полезные Советы