KESNHIN
@KESNHIN
Python

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

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

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

Войти через центр авторизации
Похожие вопросы
11 мая 2024, в 00:19
1000 руб./за проект
10 мая 2024, в 23:51
30000 руб./за проект
10 мая 2024, в 23:33
2500 руб./за проект