Содержание
В этой статье рассмотрим, как отправлять сообщения с сайта в телеграм из формы связи. Для примера я возьму форму из предыдущей статьи Форма обратной связи на php и после нехитрых манипуляций она сможет передавать сообщения и данные в мессенджер telegram.
Форма состоит из двух файлов: index.php с html разметкой, и обработчика telegram.php, который отправляет письмо с данными на почту и в telegram.
Создайте в корне сайта файл index.php c таким содержимым, или поместите html - разметку формы на страницу вашего сайта:
<input id="email" name="email" required="" type="email" placeholder="Ваш эл. адрес">
<textarea id="text" name="text" placeholder="Текст сообщения"></textarea>
<button class="send" type="submit">Отправить</button>
</form>
Для передачи данных из формы в телеграм нам нужны token телеграм и id чата, куда будут приходить сообщения.
Чтобы получить токен, необходимо создать бота. Для этого найдите в мессенджере @BotFather, нажмите внизу слева на кнопку "меню" и выберите команду /newbot.
Далее задайте боту имя (например mynewbot), и никнейм. Никнейм должен быть уникальным а так же обязательно оканчиваться на bot. Например, coderistu_bot. Если имя для бота уже занято, то вы увидите такое сообщение: Sorry, this username is already taken. Please try something different. Если имя не занято, то придет сообщение об успешной регистрации бота, где будет указан его токен.
Далее нужно узнать ваш chat_id, для чего находим в телеграм бота @getmyid_bot и выбираем в меню команду /start, после чего придет сообщение с вашим chat_id.
Отправка сообщений в телеграм из формы связи
В этой же директории на сервере, где лежит файл index.php нужно создать файл - обработчик формы telegram.php в котором прописываются полученные ранее токен telegram и chat_id.
if (!empty($_POST['email']) && (!empty($_POST['text']))) { //проверяем поля на пустоту
$to = "ваша почта" ; // куда отправляем письмо
$mail = 'Почта: '.$_POST['email']; // получаем данные из формы
$text='Сообщение:' .$_POST['text']; // получаем данные из формы
$message=$mail."\r\n". htmlentities($text); // формируем сообщение
$subject = "Письмо с сайта"; // тема письма
mail($to, $subject, $message); // отправка письма
$token='ваш_токен'; // ваш токен телеграм
$chat_id='ваш id'; // ваш id телеграм
if (isset ($token) && ($chat_id)) {
$sendToTelegram = fopen("https://api.telegram.org/bot{$token}/sendMessage?chat_id={$chat_id}&parse_mode=html&text=$mail%0A$text","r"); // отправка данных c формы в телеграм
}
echo "Письмо отправлено!"; // сообщение при отправке
} else {
echo "Заполните все поля"; // сообщение при ошибке
}
?>
<script type="text/javascript">
setInterval(function(){ document.location.replace("index.php"); }, 3000);
</script>
Комментарии
Андрей
(07.08.2022 - 01:37)Спасибо, все получилось. Давно хотел настроить передачу заявок с сайта в телеграм. Оказалось проще, чем я думал.
Felix
(26.08.2023 - 02:04)Самая лучшая статья, ебался с лид формами без знаний в коддинге. С первого раза все заработало в отличии от других скриптов.