Бот для проверки подписки на канал или группу

Бывает необходимо предоставить пользователю функционал бота после подписки на канал или группу в Telegram. Вот небольшой гайд как это сделать.

Проверка подписан ли пользователь на канал или группу производится с помощью запроса к Telegram API методом getChatMember. Для этого в конструкторе ботов Botmother предусмотрен такой сценарий.

1. Создадим экран запроса с компонентом «Запрос», метод Post.

2. Пропишем URL запроса:

где «ТОКЕН» — токен вашего бота в Телеграм (получен от BotFather).

Бот для проверки подписки на канал или группу

3. В настройках компонента добавим тело запроса:

{ "chat_id": "id канала/группы", "user_id": "{{this_user.platform_id}}" }

где id канала/группы — идентификатор канала/группы, на который проверяется подписка,

user_id — id пользователя, у которого проверяется подписка. Можно оставить как есть.

Бот для проверки подписки на канал или группу

4. Выберем «Экран, который выпролнится при удачном выполнении запроса» — следующий шаг по сценарию (п. 5).

5. Добавим экран с компонентом "Развилка", чтобы распределять по разным сценариям пользователей в зависимости от того, подписан юзер или нет, или имеет другой статус, например, заблокирован.

Статус пользователя сообщит Телеграм, ответ попадет в переменные пользователя. Эти переменные можно посмотреть в разделе «Состояния пользователей».

Ответы от Телеграм приходят такие:

member - пользователь является подписчиком;

left — пользователь не подписан;

kicked — пользователь заблокирован;

administrator - админ;

creator — создатель.

В боте ответ попадет в переменную last_request. result. status, значит ее значение мы и проверим в Развилке.

left - не подписан
left - не подписан
member - подписан
member - подписан

Пишем last_request. result. status в «Имя переменной, откуда развилка возьмет значение».

Бот для проверки подписки на канал или группу

6. Добавляем Цели развилки (кнопка «Добавить цель» в настройках Развилки), т. е. куда перейдет пользователь в зависимости от его статуса, подписан или нет.

Бот для проверки подписки на канал или группу
Бот для проверки подписки на канал или группу

В целом схема экранов может быть такой.

Бот для проверки подписки на канал или группу

7. И назначаем бота админом канала или группы.

Теперь после старта бот будет проверять, является пользователь подписчиком или нет. Если нет, то предложить подписаться на канал или вступить в группу. Можно включить такую проверку на любом этапе пользования ботом, например, после триала или для получения расширенного функционала.

Протестить такого бота со стороны пользователя можно тут: https://t. me/privet123_kak_dela_bot. Хотя подобные проверки на подписки наверняка встречались не раз.

66
10 комментариев

Добрый день! Сделали все по инструкции выдает ошибку. Подскажите, что пошло не так?))

Ответить

Что-то с user id. Напишите в поддержку

Ответить

Тоже самое... У вас получилось решить ?

Ответить

Добрый вечер, а где это все делать то? В каком приложении или на сайте?

Ответить

Здесь готовая инструкция на конструкторе ботов Botmother.com

Ответить

скажите пожалуйста - а по номеру телефона я могу узнать на какие каналы и чаты подписан человек?

Ответить

Формально нет

Ответить