Данный бот работает и для групп, и для каналов Telegram
Группы и каналы в Telegram — это два различных типа коммуникационных платформ на данном мессенджере. Вот их основные отличия:
- Группы Telegram:
- Создаются для собиравшихся людей с общими интересами или целями, как сообщество.
- В группах допускается активное участие всех участников, таких как отправка сообщений, медиафайлов, стикеров и т.д.
- Администраторы группы имеют различные уровни прав доступа и могут управлять членством, удалять сообщения и т.д.
- Группы могут быть публичными (доступными для всех) или частными (требующими приглашения или одобрения).
- Каналы Telegram:
- Создаются для односторонней коммуникации от администратора к подписчикам, как более информационный и ежедневный источник.
- Каналы предоставляют платформу для публикации сообщений только администратором, и подписчики могут только просматривать их.
- Администраторы канала могут настроить уведомления для подписчиков и имеют контроль над параметрами публикации.
- Каналы могут быть публичными (доступными для всех) или частными (требующими приглашения или одобрения).
1. Создаём бота:
- Сначала нужно создать нового бота в Telegram (или воспользоваться данными ранее созданного бота)
- Чтобы сделать своего бота, понадобится другой бот — BotFather. Это официальный инструмент для создания ботов и управления ими. Найти BotFather можно через поиск. Обратите внимание на синюю галочку рядом с именем: именно она укажет на правильный чат.
- Запустите диалог с ним и нажмите «Начать».
- Кликните по кнопке меню и выберите /newbot.
- BotFather попросит назвать вашего бота. Введите желаемое имя и нажмите «Отправить».
- Следующим шагом нужно придумать боту никнейм. Он должен быть уникальным и заканчиваться на bot. Если эти условия не выполняются, BotFather просит сочинить другой.
- Далее BotFather предоставит ссылку на созданного бота и токен для обращения к нему. Ссылка нужна для поиска бота, ею можно делиться. А вот токен — длинный набор символов — вещь секретная. Это своеобразный ключ, с помощью которого осуществляется управление программой. Сохраните его, он вам пригодится чуть позже.
2. Настраиваем бота:
- Создаём воронку (последовательность действий, которые будут происходить, когда пользователь будет “общаться” с ботом)
- admin/telegram-funnel/index Создать воронку, вписать её название. Сохранить
- admin/telegram-funnel-block/index
- Создаём блок №1:
- Выбрать созданную ранее воронку. Тип блока: авторизация *бот находит по введённому пользователю email этого пользователя и прописывает в его доп поле его ID телеграмНазвание блока прописываем: Авторизация в ботеСохранить
- Создаём блок №2
- Выбрать созданную ранее воронку.
- Тип блока: отправка списка чатов.
- Название блока прописываем: Отправить список чатов *бот находит все потоки, где есть этот пользователь в статусе Активен, проверяет эти потоки на наличие подключенного чата, и высылает ссылки на вход в актуальные для этого пользователя чаты
- Предыдущий блок: Авторизация в боте *нам нужно составить последовательность из блоков, поэтому в поле Предыдущий блок выбираем блок Авторизация
- Теперь нужно зайти в блок №1 (Авторизация в боте) и в поле Следующий блок выбрать Блок №2 (Отправка списка чатов)
- Создаём блок №1:
- Добавляем бота на странице admin/telegram-bot/index Для этого нужно нажать на Создать бота и открывшейся строке ввести его токен (п.1) *Далее система получит все необходимые данные бота (Username, Webhook, Название бота)
- После добавления бота на странице admin/telegram-bot/index находим его в списке и заходим в настройки. В настройках в поле Воронка выбираем созданную в п. 3 воронку. Сохраняем 😉
3. Добавляем бота в чат:
Нужно добавить бота в чат через раздел Управление — Добавить администратора (права администратора, которые нужны для корректной работы бота — «Блокировка пользователей» и «Приглашение участников»)
*Обязательно выдайте права боту в момент добавления администратора. Если добавить бота в чат без необходимых прав, а потом добавить права, то чат не попадёт в базу. В таком случае нужно бота удалить из чата и снова добавить, как описано выше
4. Делаем связку чата с платформой:
- Находим в списке чатов admin/telegram-chat/index нужный чат и проставляем значение 1 у “Автоисключение”
- Если настраиваете канал, то после добавление в него бота, необходимо отправить какое-то сообщение, чтобы канал появился на платформе и добавить пригласительную ссылку в этом же разделе.
Важно: бот исключает из канала только тех пользователей, чей телеграм ID сохранен в его карте.
3. Осталось добавить чат в настройки потока. Находим нужный поток, заходим в настройки. Вкладка Настройки, в поле Telegram чат или Telegram канал (в зависимости от типа настраиваемого чата) выбираем из списка — нужный чат.
✅ Готово!)
Как работает удаление из чата?
В 00.00 каждую ночь происходит проверка на статус ученика в потоке Активен. Если статус ученика в потоке Заблокирован / Доступ завершён, то бот удаляет ученика из чата. Но если в течение дня ученик в статусе Заблокирован / Доступ завершён что-то напишет в чате, то бот его удалить из чата моментально.
Если ученик в статусе Активен, то бот его не тронет. Т.е. бот смотрит на статус ученика в потоке.
Если нужно настроить подобный сценарий для разных потоков, то можно использовать одного и того же бота и одну и ту же воронку. Просто нужно добавить этого бота в нужный чат Администратором, в момент добавления бота в чат выдать ему права «Блокировка пользователей» и «Приглашение участников» и выбрать в нужном потоке нужный чат.
Если ученик находится в нескольких потоках, в которых настроена проверка чат-бота на статус ученика в потоке, при этом даже если проверку осуществляют разные боты по разным потокам, то в сообщении с ссылкой на чат этому ученику будут отправляться все доступные для него ссылки. Пример такого сообщения. Это не баг, это фича 😃
Сообщения от пользователей, которые они шлют в диалог с ботом, можно посмотреть здесь admin/telegram-conversation/index
Все контролируемые ботами чаты можно посмотреть здесь admin/telegram-chat/index
При этом надо учитывать особенность телеграм каналов: когда бот контроллер удаляет пользователя из канала, канал пропадает в устройстве пользователя, а в самом канале этот пользователь может некоторое время продолжать отображаться как подписчик. При этом, если пользователь, которого удалили из канала, попытается зайти в канал по ссылке, то у него появится кнопка «Подписаться».