Всем — привет. Давно зрела идея разобраться с отправкой данных из формы на сайте в мессенджер Telegram, но руки не доходили, а моментально получать заявки прямо в телефон, ой как хотелось!
И вот, наконец-то посидел и разобрался. Конечно постичь все тонкости API — не удалось, но по кусочкам насобирал информацию и удалось отправить данные из контактной формы в чат Telegram.
Это актуализированная статья, в которой решены такие проблемы, как отправка фото и пропадающий символ «+», который не приходил в сообщение и из-за этого номер телефона был некликабельным. Появилась возможность не просто отправлять 1 фото, а сразу несколько файлов, в том числе PDF, docx и любых других.
Важно: для отправки файла из формы в Телеграм на вашем сервере должен быть включен cURL. Обратитесь к техподдержке вашего хостинга, они подскажут что делать и как включить. У многих он включен по умолчанию. Например, на моем хостинге Beget — так.
Как отправить данные формы на сайте в Telegram
- Пишем команду /newbot, для создания нового бота.
- Придумываем имя бота.
- Придумываем ник бота.
Если все прошло успешно, то увидите поздравления и токен вашего бота, в моем случае это:
После этого можно пойти двумя путями:
- создать групповой чат, в который будут приходить заявки и пригласить туда нашего бота;
- вступить в переписку с ботом и получать личные сообщения от него.
Давайте займемся этим и, пока, пойдем по первому пути.
Зайдите в меню, нажмите «New Group» («Создать группу») и задайте имя вашему чату.
Не забываем пригласить своего бота в чат. Откройте меню чата, перейдите в «Add Members» («Добавить участников») и введите имя своего бота.
На данный момент у нас есть бот, мы знаем его токен, есть чат, в который будут приходить заявки, и нам осталось узнать только id чата. Для этого, напишем в чате:
А затем перейдите в браузер, если используете приложение и введите:
https://api.telegram.org/botXXXXXXXXXXXXXXXXXXXXXXX/getUpdates
где, XXXXXXXXXXXXXXXXXXXXXXX — токен вашего бота, полученный ранее.
Если все сделали правильно, то перед вами откроется подобная страница:
Разметка формы
Не стал выдумывать что-то сверхсложное, а просто 2 поля и возможность прикрепить файл. Оставил телефон, ведь у многих возникала проблема с символом «+», а файл добавил, так как меня просили разобраться с этой темой, при этом, теперь можно вставлять несколько штук.
Добавил стили — получилось примерно так (внешний вид в исходнике немного отличается):
Не забывайте, что форма отправляется без перезагрузки страницы, а значит используется ajax, и, для упрощения, jQuery. Поэтому подключаем сам jQuery, если не подключен, а после, и сам скрипт. Я сделал специальную папку telegramform, которую нужно поместить в корень сайта. Если нужно, сделаю исходник без использования jQuery.
Код с AJAX запросом. Файл — telegramform.js
(function ($) < $(«.contact-form»).submit(function (event) < event.preventDefault(); // Сообщения формы let successSendText = «Сообщение успешно отправлено»; let errorSendText = «Сообщение не отправлено. Попробуйте еще раз!»; let requiredFieldsText = «Заполните поля с именем и телефоном»; // Сохраняем в переменную класс с параграфом для вывода сообщений об отправке let message = $(this).find(«.contact-form__message»); let form = $(«#» + $(this).attr(«id»))[0]; let fd = new FormData(form); $.ajax(< url: «/telegramform/php/send-message-to-telegram.php», type: «POST», data: fd, processData: false, contentType: false, beforeSend: () =>< $(«.preloader»).addClass(«preloader_active»); >, success: function success(res) < $(«.preloader»).removeClass(«preloader_active»); // Посмотреть на статус ответа, если ошибка // console.log(res); let respond = $.parseJSON(res); if (respond === «SUCCESS») < message.text(successSendText).css(«color», «#21d4bb»); setTimeout(() =>< message.text(«»); >, 4000); > else if (respond === «NOTVALID») < message.text(requiredFieldsText).css(«color», «#d42121»); setTimeout(() =>< message.text(«»); >, 3000); > else < message.text(errorSendText).css(«color», «#d42121»); setTimeout(() =>< message.text(«»); >, 4000); > > >); >); >)(jQuery);
А теперь сам обработчик нашей формы. Файл — send-message-to-telegram.php:
Во многом он повторяет обработчик из других форм на блоге. Например, в статье «Создание формы обратной связи» используется аналогичный подход, и вы легко сможете осуществить отправку данных как на почту, так и в мессенджер одновременно. Но помните, что это все тестовый, учебный пример и в реальной жизни можно сделать намного больше проверок.
Тут стоит обратить внимание на константы TOKEN и CHATID. Не забывайте подставить туда свои данные. Чтобы принимать какой-то определённый тип файла, поместите его в «Массив допустимых значений типа файла.» Из популярных можно выделить:
При этом файлы будут приходить общим потоком, одним сообщением. Если тип файла не проходит проверку, то он просто не отправляется. Специально не прерываю отправку, так как для большинства важно получить хотя бы контакты для связи, чтобы не потерять лида. Больше типов файлов тут.
Вот так выглядит отправка сообщения:
Не стал делать каких-то серьезных валидаций, так как это просто пример и вам наверняка нужно будет не только отправка текста или картинки в Телеграм, но и на почту, а значит все равно подстраивать под свои нужды. Если будут вопросы и замечания — пишите в комментариях.
Вот так, средствами PHP можно отправлять в Telegram сообщения и файлы. Если вы используете CMS MODX, то на блоге igamov.ru есть отличная инструкция по интеграции формы с мессенджером.
Исходник для отправки данных формы в Телеграм
Источник: smartlanding.biz
Простой способ отправлять сообщения в Telegram
Пару слов о том, как настроить отправку сообщений в телеграм (и при этом не надо программировать, ну, необязательно).
Для данной статьи я создал очередного бота, и даже не буду прятать АПИ ключи, т.к. мне его не жалко. По мере прочтения вы можете использовать его, хотя я вам советую создать своего бота, и не давать АПИ ключи никому.
Создание бота
После этого BotFather ответит вам, что всё ОК, и вернет ключ для API, который потребуется в дальнейшем. Для экспериментов пока что можете взять мой ключ — 515479662:AAF1wTj2Xcb3HVURbc_5DbZ9qiz4ddds9iQ.
Подключение
Теперь, в списке контактов найдите созданного вами бота по имени (в моем случае, BablofilDemoBot), и нажмите кнопку start. Это важно, т.к. бот не может сам навязываться к людям.
После этого откройте в браузере вот такую ссылку
(для своего бота замените АПИ ключ на свой, вот так https://api.telegram.org/botAPIAPIAPIAPIAPI/getUpdates). Вы должны увидеть примерно тоже, что и на скриншоте – последнюю активность бота – кто подключился, кто что написал и т.п. Если там пусто, напишите в телеграме боту какую-нибудь чушь и обновите страницу. Ваша итоговая цель – найти chat_id
Я выделил то, что вам нужно найти. ВНИМАНИЕ – если пользуетесь моим ботом, то имейте в виду, что его мог подключить кто угодно, поэтому вы можете найти чужой chat_id – проверяйте, что тут упоминается ваш ник. А лучше заведите отдельного бота) Иначе кто угодно сможет вам писать от имени бота – API ключи-то известны всем.
Отправка сообщения
На этом шаге вы знаете API ключ и chat_id. Осталось только написать сообщение.
Откройте в браузере такую ссылку:
Соответственно, замените API, chat_id и текст сообщения на свои. Я отправляю слово PING как сообщение бота.
https://api.telegram.org/botAPIAPIAPI/sendMessage?chat_id=CHATID»» https://api.telegram.org/bot /sendMessage?chat_id= «».format( API_TOKEN = ‘515479662:AAF1wTj2Xcb3HVURbc_5DbZ9qiz4ddds9iQ’, CHAT_ID = ‘303964420’, TEXT = ‘TEST TEST TEST’ ))
Вот и всё… Удачи в написании ботов 🙂
Не забудьте рассказать друзьям об этой статье.
Чтобы поддержать ресурс Bablofil достаточно просто поделиться с друзьями этой статьей в социальных сетях. Каждый репост — это самая высокая оценка качества материала. Спасибо, что читаете этот блог.
Источник: bablofil.ru
Подключаем бота в Телеграм: цели и действия
Сегодня мессенджер Телеграм набирает все большую популярность. У многих он стал ассоциироваться именно с ботами. Связано это с тем, что некоторые руководители каналов/групп не могут представить свою работу в Telegram без роботов-помощников, которые значительно облегчают нашу жизнь. А новые пользователи, услышавшие про ботов, спрашивают, как подключить бота в Телеграм?
Давайте найдем решения. Именно об этом мы и поговорим в нашем сегодняшнем материале.
Зачем подключать бота в Телеграм?
Давайте для начала определимся, что это такое? Бот – это программа (строчки кода), написанная программистом в целях выполнения определенных задач. Телеграм никак не ограничивает использование роботов. Поэтому, они способны практически на все. При достаточных навыках программиста он может создать программу практически любой сложности.
Расширение возможностей
Итак, судя по тому, что боты способны практически на все, можно назвать первую причину, зачем люди их подключают – расширение возможностей. То есть, они привносят в мессенджер то, чего раньше не было. Хорошим примером является бот-статистик. Он умеет собирать статистику по каналу или его участникам, а затем по запросу руководителя он ее показывает.
Это очень удобно, особенно когда вы беспокоитесь о дальнейшей стратегии развития. Ведь полученные данные помогут определить целевую аудиторию, какой контент более интересен людям и многое другое. В самом же Телеграм такого инструмента нет.
Все процессы делают роботы на полном автомате
Люди часто используют ботов именно для того, чтобы автоматизировать некоторые рабочие процессы. Особенно это касается рутинной работы. Ведь гораздо проще перекинуть все на программу, которая будет выполнять эти задачи гораздо быстрее и качественнее, а в это время мы можем заняться более важными делами или отдохнуть. Это значительно упрощает нашу работу с Телеграм.
Например, чат-боты, которые способны общаться с людьми. Их можно настроить так, что они будут сами отвечать на большинство часто задаваемых вопросов. И в этой ситуации довольны все, и клиенты, получивший ответ на свой вопрос, и вы, так как вам не пришлось тратить на это свое время.
Они бесплатные
Все готовые боты – бесплатны. Вам не нужно их покупать или платить за их использование. Такова политика Телеграм. Если же вы столкнулись с тем, что вам пытаются продать, то не стоит на это вестись. Платными программы могут быть только в случае, если вы заказываете их разработку у профессионалов.
Например, вы не нашли бота с нужным функционалом и поэтому, обращаетесь к программистам.
Как подключить на ПК?
Готово! Теперь робот должен работать. Он будет периодически отправлять сообщения в чат.
Делаем бота в конструкторе и подключаем его
В примере выше мы подключали готового бота. Мы хотим также показать вам, как сделать своего бота в конструкторе и подключить его. В качестве конструктора мы будем использовать ManyBot.