Отправка данных формы в Telegram

Здравствуйте, дорогие друзья!
Сейчас мессенджеры играют важную роль в нашей жизни. Ведь все мы любим общаться :)
И вот одним из популярных мессенджеров является Telegram. На мой взгляд преимуществ у него много. И наверное каждый пользователь хотел бы получать сообщения с формы прямо в телеграмм! Ведь это круто, на дворе то уже 2017 год))
И как раз в данной статье я хочу показать Вам, как я настроил отправку сообщений с формы обратной связи в Telegram. Конечно всё это я реализовал для MODX, это не сложно реализовать и на каком-нибудь PHPMailer.
Схема использования очень проста, и выглядит так:

Предусовие: Настроена отправка сообщений через AjaxForm
Первым делом необходимо создать бота в Telegram с помощью этой инструкции
Дальше, после того как Вы создали бота, то у вас есть так называемый токен, который как раз нам и пригодится!
Отправка запросов
Все запросы к Telegram Bot API должны осуществляться через HTTPS в следующем виде:
Все методы доступны в Telegram Bot API
Узнать id чата Telegram
Дальше необходимо узнать id чата, чтобы бот присылал сообщения с формы именно Вам!
Для этого необходимо что-нибудь написать своему боту и воспользоваться методом getUpdates.
После того как Вы написали своему боту, прописываем следующий адрес в браузере:
Вместо <token> необходимо прописать свой токен!
Если всё сделали правильно, то Вы получите ответ в виде массива. Для корректный работы нам необходимо id чата, он как-раз такие есть в этом массиве после "chat":{"id":<chat_id>«}
Так, id чата успешно получен, теперь попробуем отправить тестовое сообщение своему боту с браузера!
Отправка тестового сообщения
Чтобы отправить сообщение себе через бота, необходимо воспользоваться методом sendMessage. Для этого прописываем следующий адрес в браузере, вместо <token> и <chat_id> необходимо прописать свои данные!
Нажимаем enter и вуаля, наше первое сообщение от нашего бота! Круто!!

Как вы заметили, текст сообщения мы прописали после метода text с типом string.
Отправка сообщений с формы
Ура мы всё настроили, теперь осталось самая главная часть, отправка сообщений с формы
Как я писал выше, предусловием является то, что Вы настроили отправку сообщений и они отправляются к Вам на почту. Неважно через AjaxForm или без него, главное что вы используете Formit.
А отправлять сообщения мы как раз будем с помощью Formit, а именно мы создадим так называемый хук.
Хук — это скрипт, который запускаются после того, как форма прошла валидацию. Каждый хук должен обязательно возвращать true в случае успеха и false в случае ошибки!
Итак, заходим в административную панель и переходим по вкладке элементы и там создаем сниппет FormitTelegram, который содержит следующий код:
Указываем токен и id чата!
Наименование полей с формы у вас могут быть другими, я использовал название полей со статьи, где мы настраивали отправку сообщений с модального окна!
К тому-же данные с формы можно получить сразу с помощью метода $hook
->getValues();
но для наглядности я решил расписать всё подробнее))
Кстати строки в телеграмме я переношу с помощью %0A. Почему-то \n и <br/>
не работали(
И так, теперь там где вызывается Formit, прописываем наш хук FormitTelegram в &hooks и проверяем. В итоге получим следующее сообщение:

Чтобы название формы было нормальным, то необходимо в вызове Formit необходимо указать параметр &formName=`Название формы`
Вот и всё, также можно настроить отправку сообщений и себе в ВК!
Если у Вы отправляете форму с помощью PHP, то на блоге smartlanding.biz есть грамотная инструкция, где всё подробно расписано с применением Ajax.
Надеюсь статья понравилась и очень полезная :)

И вот, наконец-то посидел и разобрался. Конечно постичь все тонкости API — не удалось, но по кусочкам насобирал информацию и удалось отправить данные из контактной формы в чат Telegram.
Как связать форму на сайте с Telegram
Итак, давайте приступим. Первое что нам нужно, это создать своего бота. Делается это достаточно просто. В поиске наберите @botfather, откройте родительского бота и нажмите «Start»:

Далее:
- Пишем команду /newbot, для создания нового бота.
- Придумываем имя бота.
- Придумываем ник бота.

Если все прошло успешно, то увидите поздравления и токен вашего бота, в моем случае это:
341996777:AAHbnuvQib-vHU47i-6hbUrCU9D-qHYekxc
Теперь нужно найти своего бота в поиске, указав его ник и нажать «Start», чтобы активировать его. В моем случае ник @DWS_MESSAGE_bot.

После этого, нужно создать групповой чат, в который будут приходить заявки и пригласить туда нашего бота. Давайте займемся этим.
Зайдите в меню, нажмите «New Group» и задайте имя вашему чату.

Не забываем пригласить своего бота в чат.

На данный момент у нас есть бот, мы знаем его токен, есть чат, в который будут приходить заявки, и нам осталось узнать только id чата. Для этого, напишем в чате:
- /join @ник_бота
А затем, в браузере введем:
- https://api.telegram.org/botXXXXXXXXXXXXXXXXXXXXXXX/getUpdates,
где, XXXXXXXXXXXXXXXXXXXXXXX — токен вашего бота, полученный ранее.
Если все сделали правильно, то перед вами откроется подобная страница:

Нас интересует объект "chat":{"id«:-209253141. — Это id моего тестового чата. На данном этапе у нас есть все, чтобы отправлять текстовые сообщение из контактной формы на сайте в Telegram. Давайте займемся реализацией PHP-обработчика нашей формы, и сделаем разметку самой формы.
Разметка формы
Не забывайте, что форма отправляется без перезагрузки страницы, а значит используется ajax, и, для упрощения, jQuery. Поэтому подключаем сам jQuery, если не подключен, а после, и сам скрипт.
Код с ajax запросом. Файл — telegramform.js
А теперь сам обработчик нашей формы. Файл — send-message-to-telegram.php:
Во многом он повторяет обработчик из других форм на блоге. Например, в статье «Контактная форма без перезагрузки страницы» используется аналогичный подход, и вы легко сможете осуществить отправку данных как на почту, так и в мессенджер одновременно.
Тут стоит обратить внимание на переменные $token и $chat_id. Не забывайте подставить туда свои данные. Кроме того, не забывайте, что все это будет работать, только если данные идут через https.

Вот так, средствами php можно отправлять в Telegram сообщения. Если вы используете CMS MODX, то на блоге igamov.ru есть отличная инструкция по интеграции формы с мессенджером.
Скачать исходник
Кстати, подписывайтесь на Telegram канал. Уведомления об обновлениях на блоге, в первую очередь, приходят туда)