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

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

Я пишу телеграмм ботов на библиотеке PyTelegramBotApi (telebot) и мне нужно сделать так, чтобы бот работал только если юзер подписался на определенный канал. Я знаю, что бота нужно добавить в группу и сделать админом, но я не знаю как написать такой скрипт, который будет проверять, подписан ли юзер.
  • Вопрос задан
  • 4214 просмотров
Подписаться 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 #Тутя записать сообщение, об ошибке, т.е. прописать код, для случая ,если пользователь не подписан
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
Greenway Global Новосибирск
от 150 000 ₽
SpectrumData Екатеринбург
от 200 000 до 300 000 ₽
Akronix Санкт-Петербург
от 150 000 до 200 000 ₽
22 янв. 2025, в 04:08
6000 руб./за проект
21 янв. 2025, в 23:55
20000 руб./за проект
21 янв. 2025, в 23:35
80000 руб./за проект