Кто-то пользуется в своих рабочих целях Яндекс формы (forms.yandex.ru) и не всегда удобно мониторить почту, особенно рабочую. И тогда я для себя поставил вопрос: «Можно ли отправлять уведомления через Telegram бота из Яндекс Формы?» и первый ответ в поиске дал ответ на мой вопрос: «Да, можно», но эта инструкция немного устарела.
Поэтому я пишу данную статью-инструкцию для других, надеюсь, кому-то помогу, потому что тех поддержка Яндекса говорит, что они не поддерживают такую интеграцию и предлагают использовать внешние сервисы — они лукавят.
Шаг 1. Регистрируем бота
Я не хочу останавливаться на этом шаге, есть очень много инструкций и очень подробных, например, https://habr.com/ru/articles/262247/
Шаг 2. Интеграция с Яндекс.Форма
Я пропущу тот шаг, что нужно добавить поля в саму форму и т.п. Думаю, что с этим не будет у вас проблем.
Главный наш экран — это вкладка «Интеграции»
Источник: dzen.ru
Как отправлять заявку с сайта в Telegram?
Как сделать отправку формы в телеграмм
В этой статье мы хотим Вам показать способ работы с формой, которую используют многие разработчики для своих проектов. Это форма работает на HTML/CSS/JavaScript/PHP используя технологию Ajax и позволяет отправлять информацию в виде сообщения в группу Telegram. Скрипт формы до минимума был упрощён, чтобы его можно было быстро поставить на любой проект.
HTML разметка формы
Оставить заявку Отправить Сообщение успешно отправленно!
CSS стили формы
.wrapperForm < display: flex; flex-direction: column; justify-content: center; align-items: center; row-gap: 20px; >.headingForm < width: fit-content; font-size: 22px; text-align: center; >form.formFeedBack < width: 500px; display: flex; flex-direction: column; row-gap: 10px; >.formFeedBack .textField < padding: 7px 10px; line-height: 1; >.formFeedBack .butSubmitForm < width: fit-content; margin: auto; padding: 5px 25px; font-size: 14px; >.messageBlockForm < display: none; >.messageBlockForm.active
JavaScript формы
Для упрощения работы с JS на сайтах (не SPA — приложений) используем jQuery.
$(documnet).ready(function() < $(«.formFeedBack»).on(«submit», function() < let dataSubmit = $(this).serialize() $.ajax(< url: ‘путь_до_файла обработчика’, method: ‘post’, dataType: ‘html’, data: dataSubmit, success: function(data)< console.log(data); $(«form.formFeedBack .messageBlockForm»).addClass(«active») setTimeout(() =>< $(«form.formFeedBack .messageBlockForm»).removeClass(«active») >, 3000); > >); >) >);
Файл обработчик формы на PHP
/* ============================= */ /* ОТПРАВКА ПИСЬМА ЗАКАЗА В TELEGRAM */ /*функция для создания запроса на сервер Telegram */ /* ============================= */ function parser($url) < $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $result = curl_exec($curl); if($result == false)< echo «Ошибка отправки запроса: » . curl_error($curl); return false; >else < return true; >> /* ============================= */ /* ============================= */ /* ============================= */ /* ОТПРАВКА СООБЩЕНИЕ В ТЕЛЕГРАММ */ /* ============================= */ function orderSendTelegram($message) < /*токен который выдаётся при регистрации бота */ $token = «ТОКЕН_ДЛЯ_БОТА_ТЕЛЕГРАМ»; /*идентификатор группы*/ $chat_id = «ID_ГРУППЫ»; $message = urlencode($message); /*делаем запрос*/ parser(«https://api.telegram.org/bot/sendMessage?chat_id=text=»); > /* ============================= */ /* ============================= */ /* ============================= */ /* ОБРАБОТЧИК ДЛЯ ФОРМЫ В НИЖНЕЙ ЧАСТИ ЭКРАНА */ /* ============================= */ if($_POST) < $name = htmlspecialchars($_POST[«name»]); $phone = htmlspecialchars($_POST[«phone»]); $message = htmlspecialchars($_POST[«message»]); $textMessage = «СООБЩЕНИЕ ИЗ ФОРМЫ GOLDEN-LINKn»; $textMessage .= «Имя: «.$name.»n»; $textMessage .= «Телефон: «.$phone.»n»; $textMessage .= «Сообщение: «.$message.»n»; // orderSendTelegram($textMessage); >
Источник: proweb63.ru
Как настроить форму обратной связи на сайте в Telegram?
Уведомления с MODX в Telegram
MODX Revo
В данном уроке разберем, как настроить отправку различных уведомлений в Telegram из MODX: отправка форм, заказов, редактирование ресурсов.
Заводим себе бота
После чего botFather попросит нас ввести название бота (Alright, a new bot. How are we going to call it? Please choose a name for your bot.). Я написал (web-revenue). Вводите свое имя и отправляете.
После этого всего должно прийти сообщение о создании бота с токеном. Он то нам и нужен, запишите его.
Дальше добавляем своего бота в контакт лист (запустите его и что-нибудь напишите).
Теперь нам нужно узнать ID бота, для этого, заходим по ссылке:
https://api.telegram.org/bot/getUpdates
где — тот самый токен который мы получили ранее (Use this token to access the HTTP API: токен).
Там подсматриваем свой id:
Записываем его рядом с токеном) Теперь у нас есть все необходимые данные чтобы можно было отправлять уведомления в телегу, например подставляя текст в ссылку:
https://api.telegram.org/bot/sendMessage?chat_id=; $chat_id = «»; $values = $hook->getValues(); // Получаем название формы $formName = $modx->getOption(‘formName’, $formit->config, ‘form-‘.$modx->resource->get(‘id’)); // Получаем ip адрес отправителя $ip = $modx->getOption(‘REMOTE_ADDR’, $_SERVER, »); // Берем данные с формы $name = $values[‘name’]; $phone = $values[‘phone’]; $email = $values[’email’]; $message = $values[‘message’]; // Создаем массив данных $arr = array( «Название формы» => $formName, «IP» => $ip, «Имя» => $name); if($phone) < $arr[«Телефон»] = $phone; >if($email) < $arr[«Email»] = $email; >if($message) < $arr[«Текст сообщения»] = $message; >$txt = ‘Заполнена форма — ‘.$formName.»n»; // Цикл по массиву (собираем сообщение) foreach($arr as $key => $value) < $txt .= «».$key.»: «.$value.» n»; > // Отправляем сообщение посредством cURL $website=»https://api.telegram.org/bot».$token; $params=[ ‘chat_id’ => $chat_id, ‘text’ => $txt, ‘parse_mode’ => ‘html’ ]; $ch = curl_init($website . ‘/sendMessage’); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, ($params)); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); $result = curl_exec($ch); $modx->log(MODX_LOG_LEVEL_ERROR, $result); curl_close($ch); //Возвращаем true – это особенность написания хуков для FormIt. return true;
Здесь вам нужно вписать вместо — свой токен, — id чата бота.
Где берем данные с формы и создаем массив указываются названия полей (из формы или форм) и их расшифровка.
Важно! В данном хуке использует синтаксис fenom, по этому у вас обязательно должен быть установлен компонент PdoTools и должны быть включены настройки pdotools_fenom_default и pdotools_fenom_modx.
Теперь подключаем наш хук к вызову формы, пример:
После чего можно попробовать отправить тестовое сообщение, делать это лучше в режиме инкогнито. Если все сделали правильно, форма прилетит в телегу боту.
Уведомления о заказах из MiniShop2 в Telegram
Устанавливаем с репозитория modstore бесплатно дополнение msTelegram. После чего идете в системные настройки, там есть 2 опции:
- mstelegram_token, сюда вводим токен.
- mstelegram_recepients, сюда вводим id чатов, кто будет получать уведомления.
И проверяем чтобы плагин был повешен на событие msOnCreateOrder
MODX — уведомления об обновлениях ресурсов
К примеру у вас есть проект на котором копирайтеры , журналисты или к примеру SEO специалисты наполняют сайт и вы хотите быть в курсе, что вам публикуют. Тогда создайте плагин, с именем telegram со следующим кодом:
get(‘pagetitle’); $alias= $resource->get(‘uri’); if ($resource->get(‘published’) == «1») < $fp=fopen(«https://api.telegram.org/bot/sendMessage?chat_id=,»r»); while(!feof($fp)) < $content .= fread($fp,1024); >fclose($fp); >;
Не забудьте в коде поставить свой токен и id, после чего вешаем плагин на системные события, например такие:
И пользуемся) Надеюсь информация для вас является полезной!
Источник: web-revenue.ru