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

Бывает необходимо предоставить пользователю функционал бота после подписки на канал или группу в 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 - не подписан
member - подписан

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

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

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

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

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

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

0
10 комментариев
Написать комментарий...
ShaLi SalesAgency

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

Ответить
Развернуть ветку
Ruslan
Автор

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

Ответить
Развернуть ветку
Роман Романович

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

Ответить
Развернуть ветку
Ruslan
Автор

Напишите в личку, если нужна будет помощь

Ответить
Развернуть ветку
Сергей Бадьев

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

Ответить
Развернуть ветку
Ruslan
Автор

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

Ответить
Развернуть ветку
Роман Смелов

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

Ответить
Развернуть ветку
Ruslan
Автор

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

Ответить
Развернуть ветку
Роман Смелов

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

Ответить
Развернуть ветку
Абдулла Шихгереев

А на какой платформе этот функционал или интерфейс? Я хочу сделать такое только на sendpulse

Ответить
Развернуть ветку
7 комментариев
Раскрывать всегда