Пришел заказ:
Нужно написать телеграм бот для формы заявок. Сайт с CMS MODX Revo.
Если вы нашли эту систему, то скорее всего вы знаете что такое бот и что такое сайты на MODX поэтому пропустим ликбез о ботах и сайтах и приступим к работе.
Получение ключей бота в BotFather
Я писал об этом ранее в этой статье там описан алгоритм создания бота в BotFather. Поэтому буду считать что у вас все ключи есть и вызнаете что с ними делать. Перейдем в панель управления MODX и начнем писать код для нашего бота на PHP.
Создаем сниппет в MODX
Создаем сниппет в MODX который будет содержать код нашего телеграм бота.
Рекомендую не копировать весь код целиком, а все таки нужно понять принцип и стараться писать его самому.
И так, я создал сниппет с именем to_telegram:
Выше приведена функция message_to_telegram() на языке программирования PHP. В данной функции использована одна переменная $text она передает текст который будет приходить клиенту в телеграмм бот.
Важные строки кода:
Строка #2 - сюда мы вставляем ключ который получили в BotFather: 7359******:xxxxxxxxx
Строка #6 сюда мы вставляем id пользователей через запятую если их несколько, либо один id. ID пользователя можно получить по номеру телефона с помощью этого бота
И теперь вторая часть кода:
Переменная $text - здесь у нас заголовок сообщения и второй строкой идет само сообщение которое мы получаем из поля input name="message"
Редактируем вывод формы в MODX
Переходим на страницу или в шаблон в то место где размещена наша форма
Если ваша форма использует компонент AjaxFormit, то вам нужно просто в параметре &hooks добавить имя вашего сниппета с кодом бота в моем случае это to_telegram.
Добавляем, сохраняем и проверяем
Важно: в параметре hooks сниппет to_telegram должен размещаться после email, иначе могут быть ошибки.
Еще одна важность: пользователь который буде получать заявки в телеграм бот должен зайти в бота и нажать кнопку старт, иначе сообщения с сайта не будут приходить.
На этом все! Спасибо тем кто дочитал)