Задать вопрос
KESNHIN
@KESNHIN
Python

Как проверить, подписан ли пользователь на определённый канал?

Я пишу телеграмм ботов на библиотеке PyTelegramBotApi (telebot) и мне нужно сделать так, чтобы бот работал только если юзер подписался на определенный канал. Я знаю, что бота нужно добавить в группу и сделать админом, но я не знаю как написать такой скрипт, который будет проверять, подписан ли юзер.
  • Вопрос задан
  • 4189 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 3
SoreMix
@SoreMix Куратор тега Python
yellow
Проверять через getChatMember
Ответ написан
@SashaN69
Школота
Ответ написан
Комментировать
MinTnt
@MinTnt
https://core.telegram.org/bots/api#getchatmember

Вот функция для указного действия.
getchatmember(chat_id, user_id)
chat_id = id нужного канала/чата
user_id = id пользователя

Если пользователь есть в чате, то оно вернёт информацию по нему, если нету, то вроде выдаст исключение, или же просто не сможет получить данных.

Так как краш программы (из-за исключения) нам не нужно, то весь нужный код вместе с getchatmember делаем вот так:
try:
    #getchatmember и тд. код
except Exception:
    bot.sendmessage #Тутя записать сообщение, об ошибке, т.е. прописать код, для случая ,если пользователь не подписан
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы