Администрирование чатов и каналов Telegram через Salebot
В этой статье я расскажу, какие необходимо выполнить настройки, чтобы без проблем настроить администрирование в чате или канале Telegram: добавление только определенных людей, блокирование, отклонение заявок и т.д.
Про администрирование каналов и чатов
Данная настройка необходима множеству сегментов рынка инфобизнеса: клубы по подписке, выдача закрытых материалов, набор аудитории через закуп рекламы. В общем, способов применения масса.
И монетизировать данные настройки тоже достаточно легко: стоимость от 5000р, пригодиться может в любой вашей услуги, начиная от сопровождения запусков до настройки клубов по подписке.
Данные настройки будут сложны для пользователей, которые еще не знакомы с платформой. Если вы один из них - то для начала можете изучить бесплатный марафон по основам платформы salebot. Достаточно перейти вот сюда.
Ну, а если вы уже знакомы с salebot и у вас есть базовое понимание логики работы, блоков и стрелок, то инструкция вам подойдет.
Шаг 1. Подключение бота в каналу/чату
Конечно, все наши маннипуляции с каналом будут производиться через Telegram бот. Как его создать и подключить к платформе я пожалуй опущу, поэтому сразу переходим к подключению бота в наш канал или чат, который нужно администрировать.
Бот необходимо добавить администратором со всеми правами. Так как он будет привязан только к salebot - не переживаем, что кто-то другой получит доступ. Все будет только у нас.
После добавления бота администратором, необходимо отправить какое-то сообщение в чат или пост в канал. Это нужно для того, чтобы нам в salebot увидеть канал/чат и получить его ID.
В разделе "Клиенты" мы увидем наш чат или канал в виде карточки клиента. А для того, чтобы увидеть его ID - нужно просто открыть карточку и найти переменную ID в мессенджере:
Этот идентификатор нам нужно скопировать, а затем создать константу и добавить в проект. Как это сделать:
Копируем идентификатор. Переходим в раздел "Настройки проекта", раздел "Константы" и добавляем новую переменную.
Значением переменной будет наш идентификатор. А имя переменной можно задать либо chat_id, либо channel_id. В зависимости от того, что нужно администрировать: чат или канал.
Для чего это нужно: для администрирования доступов мы будем использовать функции. И вместо того, чтобы каждый раз в функции нам использовать числовой идентификатор - мы будем просто вставлять имя переменной. Потом, если вдруг идентификатор изменится, нам нужно будет его скорректировать только в разделе "Константы" и не редактировать функции.
Далее, необходимо в настройках проекта обязательно сгенерировать API ключ для Salebot.
Переходии в настройки проекта, мотаем вниз и нажимаем на кнопку "Сгенерировать". Если API ключ уже есть, то ничего делать не надо. При генерации ключа копировать его тоже не нужно. Нам главное - чтобы он был сгенерирован внутри проекта.
Теперь наш бот и чат/канал связаны с платформой. Далее нам нужно выполнить основные настройки по контролю доступа.
Шаг 2. Настройка реакции на заявку в чат/канал
Так как нам нужен контроль доступов, то нам обязательно сделать канал или чат закрытыми, то есть частными в настройках. И затем сформировать ссылку с заявкой.
Суть настройки - наш бот будет реагировать на заявку и сверять пользователя с данными. Если доступ человеку разрешен, значит заявку принимаем. Если доступа нет, то заявку отклоняем.
Для начала необходимо создать такую ссылку. Сделать это нужно в настройках канала/чата -> Пригласительные ссылки -> Создать ссылку.
И в настройках создания ссылки выбрать "Заявки на вступление". Получившуюся ссылку сохраняем себе и теперь ее можно будет выдавать в боте пользователям.
Далее, нам в Salebot необходимо настроить реакцию на переход по ссылке и отправку заявки от пользователя.
Когда пользователь отправляет заявку то в платформу salebot приходит уведомление "chat_join_request", именно по этому уведомлению мы можем запустить блоки, которые уже среагируют на пользователя.
Создаем блок "Не состояние с условием", в условие как раз прописываем chat_join_request.
Далее, выбор соответствия ставим "По наличию ключевых слов".
Отлично, теперь блок у нас запустится, когда человек отправит заявку.
Но так как у нас уведомление приходит от имени чата/канала, то мы пока не знаем, кто отправляет заявку.
Для того, чтобы нам узнать пользователя, который отправляет заявку, необходимо донастроить наш блок "Не состояние с условием". Сделать так, чтобы платформа получила идентификатор человека и по нему запустила уже другой блок, который как раз и будет работать уже с самим пользователем.
В блок "Не состояние с условием" нам необходимо добавить отправку API-запроса. Достаточно нажать вот сюда и у нас откроется конструктор запроса:
В конструкторе запроса мы прописываем все, как я укажу. Затем немного подправим текст:
Тип запроса выбираем POST-json
URL запроса прописываем такой: https://chatter.salebot.pro/api/#{api_key}/tg_callback
{
"user_id": "#{chat_member_id}",
"message": "join_channel",
"group_id": "your_bot"
}
- "user_id": "#{chat_member_id}" - это ID пользователя, его мы можем получить из переменной chat_member_id. Получается что мы как раз обезличенную заявку делаем такой, что теперь платформе понятно, какой пользователь ее отправляет;
- "message": "join_channel", где join_channel текст уведомления, которое придет уже для запуска блока по пользователю. Так называемый коллбек. По этому тексту мы настроим блок, который будет добавлять или отклонять заявку человека;
- "group_id": "your_bot" - тут нужно вместо your_bot указать никнейм бота, который проверяет заявку. Например thomasking_bot, обязательно, чтобы в конце было bot.
Получается, наш запрос делает следующее: мы находим человека по идентификатору, отправляем ему коллбек для запуска блока через определенный бот.
Благодаря этому мы теперь можем создать новый блок и настроить цепочку, которая будет реагировать на пользователя по условию "join_channel".
Шаг 3. Настройка обработки заявки
Теперь, когда мы настроили реакцию на заявку мы можем настроить обработку этой заявки: принять ее или отклонить.
При этом, дополнительно мы можем настроить разные условия по этой заявке. То есть, принять ее в случае если человек, допустим, купил доступ.
Но для начала необходимо настроить блок, который запустит для пользователя нужную цепочку.
Создаем блок "Не состояние с условием" и в условии прописываем текст нашего уведомления из запроса - join_channel. Это все что нужно прописать в первом блоке.
И теперь от этого блока мы можем сделать множество разных стрелок, которые будут проверять, что нужно сделать с заявкой для человека - нужно ли ему выдать доступ к каналу/чату или нет.
В моем случае у человека есть переменная club_active_sub. Это пользовательская переменная. Когда человек покупает доступ к клубу и доступ активен, то переменная равна значению "yes", во всех остальных случаях - если доступ закрыт или не куплен, то "no" или пустая.
Соответственно от нашего блока, который реагирует на условие user_join_channel мы ведем две стрелки, в которых ставим нужные условия.
Если у человека есть доступ к покупке, то значит переменная равна yes, значит в стрелке прописываем club_active_sub = 'yes'. И эта стрелка будет вести в блок, в котором мы одобрим заявку.
Другая стрелка, которая среагирует, если у человека нет доступа к покупке, будет вести в блок, в котором заявка отклоняется.
Теперь мы можем полноценно обработать нашу заявку - принять или отклонить ее, в зависимости от наличия определенных переменных у человека.
Блок, который будет принимать заявку - Не состояние. Внутри него всего одна функция в калькуляторе:
tg_approve_chat_join_request(channel_id, platform_id)
Эта функция принимает заявку в канал с идентификатором channel_id (наша константа, в которой лежит ID канала или чата) по пользователю с идентификатором platform_id.
В этот блок попадают люди, заявку от которых нам нужно принять. Работает это моментально, человеку приходит текст от бота, который мы зададим. В моем случае это "Заявка в канал принята"
Соответственно, чтобы отклонить заявку, нам нужно отправить человека в другой блок, где будет исполнена другая функция:
tg_decline_chat_join_request(channel_id, platform_id)
Данная функция отклоняет заявку по пользователю. Как видите - все очень просто.
У нас получается следующая цепочка:
- Блок, который реагирует на заявку. Из этого блока мы отправляем API запрос на пользователя, чтобы его идентифицировать и запустить обработку заявки;
- Обработка заявки. Блок запускается по уведомлению из запроса;
- Проверка наличия доступов. Одобрять для человека заявку или нет. За счет стрелок мы контролируем, в какой блок отправить человека;
- Блоки с функциями на принятие или отклонения заявки;
Теперь вы умеете работать с заявками. Осталось только научиться удалять пользователей из канала/чата, чтобы полноценно уметь автоматизировать модерацию в Telegram.
Шаг 4. Бан и разбан пользователей в чате/канале
Когда у пользователя заканчивается доступ к закрытому каналу или чату, нам необходимо его удалять оттуда. Это касается и клубов по подписке и других продуктов с такими доступами.
Для того, чтобы заблокировать человека в канале/чате необходимо исполнить простую функцию:
tg_ban_chat_member(channel_id, platform_id).
Сделать это можно в любом блоке, который запустится, когда нужно будет закрывать доступ.
channel_id это идентификатор канала или чата, в котором нам нужно забанить пользователя.
Но не редки случаи, когда человек возвращается после долгого отсутствия в клубе. Заново оплачивает абонемент и теперь его снова нужно добавить в канал. Человек не сможет отправить заявку по ссылке, так как он будет забанен и удален.
Возникнет конфликт и Telegram напишет пользователю, что "срок действия ссылки истек"
Чтобы бот имел возможность снова добавлять человека по заявке в чат или канал необходимо исполнить функцию разбана:
tg_unban_chat_member(channel_id, platform_id)
Где channel_id это идентификатор чата или канала. Логика получается следующая:
- После первой покупки доступа мы легко автоматически принимаем заявку у человека;
- Когда доступ заканчивается, мы удаляем человека из канала/чата через функцию бана;
- Если человек заново оплачивает доступ к каналу/чату, мы исполняем функцию разбана и пользователь снова может отправить заявку по ссылке, далее повторяется все с п1.
Итог настройки
Вот так на самом деле всего в 4-5 блоков мы можем внутри Salebot администрировать чаты и каналы в Telegram: принимать или отклонять заявки, банить пользователей, разбанить и т.д.
Применяйте на практике настройки из статьи, ведь платформа Salebot на самом деле куда проще, чем вы думаете.
Подписывайтесь на мой основной канал - https://t.me/headjek_tk, там еще больше материалов по платформе и не только.
Так же доступен вход в мою флагманскую программу по платформе Salebot с проверкой ДЗ от куратора, доступом навсегда и другими необходимыми фишками.