Проверка подписки на канал/группу в Telegram

Проверка подписки работает только в Telegram.

Проверить подписан ли пользователь на группу/канал можно с помощью запроса к Телеграм API методом getChatMember.

Для этого оформите в конструкторе экраны:

1. Создайте экран с компонентом Запрос, метод запроса POST.

2. Заполните URL запроса:

https://api.telegram.org/botТОКЕН/getChatMember

Где вместо ТОКЕН — токен вашего бота в Телеграм.

3. Добавьте тело запроса:

{
"chat_id": "ID канала",
"user_id": "{{this_user.platform_id}}"
}

Где:

  • ID канала — ID группы/канала, на который проверяется подписка.
  • user_id — id пользователя, у которого мы будем проверять подписку. Можно оставить без изменений, тогда будет проверяться пользователь, который попал на компонент Запрос в боте.

4. Добавьте бота, откуда будет отправляться запрос, администратором со всеми правами в группу/канал, подписка на который будет проверяться.

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

6. Проверять будем переменную last_request.result.status. Это значит, что развилка будет брать значение с этой переменной.

7. Настройте Цели развилки для перехода пользователя на экраны в зависимости от наличия/отсутствия подписки.

В ответе от сервера в переменной last_request.result.status могут быть следующие значения:

  • member — пользователь является подписчиком;
  • left — пользователь не подписан;
  • kicked — пользователь удален;
  • administrator — админ;
  • creator — создатель.

Чтобы в зависимости от ответа сервера пользователь попадал на соответствующий экран, настройте Цели развилки для каждого ответа.

8. Оформите экраны для ответа пользователю.

Как открывать доступ к каналу/группе после оплаты в боте, можно посмотреть тут

Оплату на стороннем сайте можно сделать с помощью Внешнего события

В начало ↑

Была ли статья полезна?

Да Нет