Отправка данных из формы обратной связи в Telegram

17 октября 2024

Создание бота в Telegram:

Найди BotFather в Telegram и создай нового бота, следуя его инструкциям.
Получи API ключ бота.
Включи бот. Для этого открой созданый бот и нажми в нем "Запустить" 

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

В PHP скрипте сделай следующее:
Получи данные из формы ($_POST или $_GET).
Сформируй сообщение для отправки в Telegram в нужном формате.
Используй функцию file_get_contents или cURL для отправки запроса к Telegram Bot API.

Настройка Telegram:
Узнай chat_id для чата, в который хочешь отправлять сообщения. Можно использовать @userinfobot в Telegram для получения этой информации.

Ты можешь отправлять сообщения как в канал, так и себе в личные сообщения. Вот как это сделать в каждом случае:

Отправка сообщений себе в личные сообщения
Найди свой user_id:
Открой Telegram и найди бота @userinfobot.
Отправь ему команду /start.
Он ответит сообщением, содержащим твой user_id.

Отправка сообщений в канал
Создай канал:

Открой Telegram и создай новый канал, если его еще нет.
Запомни его имя или @username.

Добавь бота в канал:

Добавь своего бота (созданного через BotFather) в канал как администратора. Для этого открой настройки канала, перейди в раздел "Администраторы" и добавь бота.
Найди chat_id канала:

Узнать chat_id канала можно, используя специальный сервис или написав боту напрямую. Chat_id канала обычно начинается с -100.

Теперь ты можешь отправлять сообщения как в личные сообщения, так и в канал.

Когда пользователь заполнит форму и отправит её, данные будут переданы в send_form.php, который обработает эти данные и отправит сообщение в Telegram. Для полноты, вот как будет выглядеть окончательный HTML и PHP код:

HTML (форма):

<form id="feedbackForm" method="post" action="/send_form.php" accept-charset="UTF-8">
    <input type="text" placeholder="Name" class="form-control" id="name" name="name" required="">
    <input type="tel" placeholder="Phone" class="form-control" id="phone" name="phone" required="">
    <input type="tel" placeholder="E-mail" class="form-control" id="email" name="email" required="">
    <textarea class="form-control" placeholder="Message" id="message" name="message" rows="5" required=""></textarea>
    <button type="submit" class="btn btn-lb">SEND</button>
</form>

PHP (send_form.php):

<?php
// Ваш API ключ бота
$botToken = "вставьте API ключ бота";
// Ваш user_id
$chatId = "вставьте Ваш user_id";

// Получаем данные из формы
$name = $_POST['name'] ?? '';
$phone = $_POST['phone'] ?? '';
$email = $_POST['email'] ?? '';
$message = $_POST['message'] ?? '';

// Формируем сообщение для отправки в Telegram
$telegramMessage = "Новое сообщение с формы:\n\n";
$telegramMessage .= "<b-->Имя: $name\n";
$telegramMessage .= "<b>Телефон:</b> $phone\n";
$telegramMessage .= "<b>E-mail:</b> $email\n";
$telegramMessage .= "<b>Сообщение:</b> $message";

// URL API Telegram
$telegramApiUrl = "https://api.telegram.org/bot$botToken/sendMessage";

// Подготавливаем данные для запроса
$postFields = [
    'chat_id' => $chatId,
    'text' => $telegramMessage,
    'parse_mode' => 'HTML'
];

// Инициализируем cURL
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $telegramApiUrl);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

// Отправляем запрос и получаем ответ
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

// Проверяем результат
if ($httpCode == 200) {
    echo "Сообщение успешно отправлено в Telegram!";
} else {
    echo "Ошибка при отправке сообщения в Telegram. HTTP Код: $httpCode. Ответ: $response";
}
?>

Готовы помочь в создании нового веб-сайта, или внесении изменений в существующий.
Свяжитесь с нами для получения профессиональной поддержки.

Telegram: @lb_user E-mail: [email protected]

Написать комментарий