Telegram - настраиваем передачу данных из форм на сайте в чат

Telegram - настраиваем передачу данных из форм на сайте в чат


Более расширенный постинг в Telegram и дополнительные возможности — тут


Задача: в интернет-магазине есть форма заказа товара. Покупатель ее заполняет и отправляет оператору. Эти данные дополнительно приходят в чат телеграма. Форма, естественно, передается методом POST
Для реализации понадобятся: бот, чат, и якобы протокол https://, без которого все прекрасно работает :)


Ссылка для примера: http://tg.devarts.pro/send
Тестовый чат: https://t.me/iartsorders

Как создать своего бота: /691-telegram-registraciya-i-nastroyka-bota.html

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

Отправлять уже можно! Используя Telegram API через адресную строку браузера можно присылать сообщения в чат. Заменяете красные значения на свои и переходите через браузер по ссылке. В чат должно прийти сообщение от вашего ботат!

https://api.telegram.org/bot273805635:AAGQOuPVadtQyEx0COPrDnq2r-YmUo90xaU/sendMessage?chat_id=@iartsorders&text=my text



Telegram - настраиваем передачу данных из форм на сайте в чат


Данная форма создается очень легко и быстро! Самая базовая форма, которую без особых проблем набросать на HTML. Вставил переменную $return, чтобы не перенаправляло на отдельную страницу после отправки.

<div class="block">
    <form action="" method="POST">
        <p>Форма для заявки</p>
        <p><?= $return ?></p>
        
        <input name="name" type="text" placeholder="Введите ваше имя" required>
        <input name="phone" type="tel" pattern="^[ 0-9]+$" placeholder="Введите ваш телефон" required>
        <input type="submit" value="Отправить">
    </form>
</div>


PHP обработчик
Теперь осталось дело за малым. Подкинем сюда обработчик, который, собственно, и будет инициировать отправку.

<?php

//проверяем наличие ПОСТ-параметров
if(!empty($_POST)){
    
    //проверяем наличие параметров нашей формы
    if (!empty($_POST['name']) && !empty($_POST['phone'])){
    
        //токен вашего бота
        $token = "273805635:AAGQOuPVadtQyEx0COPrDnq2r-YmUo90xaU";
        //имя чата, если публичный или id для приватного
        $chat = "@iartsorders"; 
    
        //название вашего товара
        $order = rand(0, 1000); 

        //данные из форм
        $name = $_POST['name'];
        $phone = $_POST['phone'];

        $txt = "New order: $order%0A";  

        if (
            fopen("https://api.telegram.org/bot$token/sendMessage?chat_id=$chat&text=$txt", "") &&
            fopen("https://api.telegram.org/bot$token/sendContact?chat_id=$chat&phone_number=$phone&first_name=$name", "")
            ) {
            
            $return = 'Спасибо, Ваш заказ отправлен оператору!';
    
        } else {
        
            $return =  'Ошибка отправки!';
        }
    }
}
 
?>


Для того, чтобы сделать номер кликабельным, сделал две отправки через функцию fopen();. Первая передает текст заказа, а вторая номер и имя, указанные в форме. Результат записываем в переменную $return и выводим сразу под формой.

Скачать index.zip Размер: 1,03 Kb Скачиваний: 117


Понравилась статья "Telegram - настраиваем передачу данных из форм на сайте в чат" из раздела Веб разработка » Telegram? Подпишись на RSS. Будь в курсе всего происходящего на сайте
Комментариев: 2 •  Просмотров: 2174   Дата: 07-мар-2017, 05:44

Похожие статьи

Комментарии


Гости
Демо возвращыет такой результат:

Warning: fopen(): php_network_getaddresses: getaddrinfo failed: Временный сбой в разрешении имен in /home/users/a/artemmian/domains/tg.devarts.pro/send/index.php on line 22

Warning: fopen(https://...@iartsorders&text=New order: 612%0A): failed to open stream: php_network_getaddresses: getaddrinfo failed: Временный сбой в разрешении имен in /home/users/a/artemmian/domains/tg.devarts.pro/send/index.php on line 22

Пробывал у себя на хостинге, тоже самое

Возможно что то изменилось в API телеграма?
(11 марта 2018 17:05) • цитировать • •

admin
Цитата: salemoney
Пробывал у себя на хостинге, тоже самое

Возможно что то изменилось в API телеграма?


Только что все успешно отправилось. Если на вашем хосте тоже не пошло, значит были проблемы на стороне телеграма
(14 марта 2018 20:58) • цитировать • •
b
i
u
s
|
left
center
right
|
emo
color
|
hide
quote
translit

© 2010-2017 devarts.pro v 7.0: flexyflat tpl Designed by devarts
Карта сайта HTMLКарта сайта XMLПравообладателям
Яндекс.Метрика