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

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

Я пишу телеграмм ботов на библиотеке PyTelegramBotApi (telebot) и мне нужно сделать так, чтобы бот работал только если юзер подписался на определенный канал. Я знаю, что бота нужно добавить в группу и сделать админом, но я не знаю как написать такой скрипт, который будет проверять, подписан ли юзер.
  • Вопрос задан
  • 4533 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Python-разработчик: расширенный курс + нейросети
    12 месяцев
    Далее
  • Яндекс Практикум
    Python-разработчик
    10 месяцев
    Далее
  • Skillbox
    Профессия Python-разработчик + ИИ
    10 месяцев
    Далее
Решения вопроса 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 #Тутя записать сообщение, об ошибке, т.е. прописать код, для случая ,если пользователь не подписан
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
ITK academy Краснодар
от 220 000 до 300 000 ₽
ITK academy Краснодар
от 75 000 ₽
DimaTech Ltd Краснодар
от 140 000 до 140 000 ₽