Есть сайт, созданный без использования движков. Хочу прикрутить форму обратной связи, чтобы посетитель оставил свой номер и имя в специальной форме, а эти данные потом передались менеджеру в Telegram. Можете подробно объяснить, как это делается?
Asked
Active
Viewed 1.3k times
8
-
возможный дубликат - Может ли бот Telegram посылать оповещения при определённых событиях? – Anatol Sep 19 '17 at 05:36
-
Попробуйте сервис https://formfor.site/. Отлично подходит для этих целей – hailovigor Aug 31 '18 at 20:32
-
Или просто попробовать такой сервис как https://www.telenote.site – erik dahlgren Feb 24 '21 at 17:58
1 Answers
25
- Создаешь нового бота в Telegram, пишешь сюда: t.me/botFather сначала /start, затем /newbot.
- Узнаешь ID твоего аккаунта в Telegram. Сделать это можно, написав боту t.me/userinfobot
- Создаешь ссылку на API Telegram для отправки сообщения в чат с тобой (предварительно нужно начать чат с твоим ботом в Telegram, для этого нужно нажать /start). Ссылка выглядит таким образом:
https://api.telegram.org/bot[Токен бота]/sendMessage?chat_id=[Твой ID]&text=[Текст] Затем нужно настроить обработчик твоей формы. Тут уже по твоей части, просто берем данные, к примеру:
$phone = $_POST['phone']; $email = $_POST['email']; $firstname = $_POST['firstname'];Затем генерируем сообщение, которое хотим отправить в Telegram. Опять же, для примера:
$msg = "Новая заявка на сайте! \nE-mail: $email \nТелефон: $phone \n Имя: $name";Затем необходимо отправить эти данные в телеграм. Делать это можно разными способами, самый простой:
$token = *Вставь сюда токен своего бота*; $telegram_admin_id = *Сюда твой ID, взятый из userinfobot*; $msg = "Новая заявка на сайте! \nE-mail: $email \nТелефон: $phone \n Имя: $name"; file_get_contents(https://api.telegram.org/bot'. $token .'/sendMessage? chat_id='. $telegram_admin_id .'&text=' . urlencode($msg));
Dmitry
- 3,768
Alexxosipov
- 2,769
-
А если необходимо делать рассылку всем, кто подписан на данного бота. Как быть? – Batyabest Oct 01 '18 at 08:54
-
@Batyabest сохранять в БД всех пользователей, кто подписан на бота. Т.е. каждый раз при сообщении от пользователя проверять, есть ли данный пользователь в БД. Рассылку можно будет сделать через обычный цикл. – Alexxosipov Oct 01 '18 at 09:20
-
а как собирать тех, кто подписан на бота? Есть какая та стандартная команда для этого? – Batyabest Oct 01 '18 at 09:24
-
@Batyabest погрузитесь немного в документацию API telegram'a. Увидите, что каждое сообщение в себе несет ID юзера. А дальше - делайте с ним то, что пожелаете нужным. Хоть в текстовых файлах храните через
;, хоть в БД. Стандартной команды, кто УЖЕ подписан - нет. Можно только собирать по сообщениям. – Alexxosipov Oct 01 '18 at 09:40