Бот для проверки подписки на канал или группу
Бывает необходимо предоставить пользователю функционал бота после подписки на канал или группу в Telegram. Вот небольшой гайд как это сделать.
Проверка подписан ли пользователь на канал или группу производится с помощью запроса к Telegram API методом getChatMember. Для этого в конструкторе ботов Botmother предусмотрен такой сценарий.
1. Создадим экран запроса с компонентом «Запрос», метод Post.
2. Пропишем URL запроса:
где «ТОКЕН» — токен вашего бота в Телеграм (получен от BotFather).
3. В настройках компонента добавим тело запроса:
где id канала/группы — идентификатор канала/группы, на который проверяется подписка,
user_id — id пользователя, у которого проверяется подписка. Можно оставить как есть.
4. Выберем «Экран, который выпролнится при удачном выполнении запроса» — следующий шаг по сценарию (п. 5).
5. Добавим экран с компонентом "Развилка", чтобы распределять по разным сценариям пользователей в зависимости от того, подписан юзер или нет, или имеет другой статус, например, заблокирован.
Статус пользователя сообщит Телеграм, ответ попадет в переменные пользователя. Эти переменные можно посмотреть в разделе «Состояния пользователей».
Ответы от Телеграм приходят такие:
member - пользователь является подписчиком;
left — пользователь не подписан;
kicked — пользователь заблокирован;
administrator - админ;
creator — создатель.
В боте ответ попадет в переменную last_request. result. status, значит ее значение мы и проверим в Развилке.
Пишем last_request. result. status в «Имя переменной, откуда развилка возьмет значение».
6. Добавляем Цели развилки (кнопка «Добавить цель» в настройках Развилки), т. е. куда перейдет пользователь в зависимости от его статуса, подписан или нет.
В целом схема экранов может быть такой.
7. И назначаем бота админом канала или группы.
Теперь после старта бот будет проверять, является пользователь подписчиком или нет. Если нет, то предложить подписаться на канал или вступить в группу. Можно включить такую проверку на любом этапе пользования ботом, например, после триала или для получения расширенного функционала.
Протестить такого бота со стороны пользователя можно тут: https://t. me/privet123_kak_dela_bot. Хотя подобные проверки на подписки наверняка встречались не раз.