когда пишет пользователь который не подписался на каналы бот его пропускает

import telebot
from telebot.apihelper import ApiTelegramException
import g4f
from g4f.client import Client
from config import TOKEN

bot = telebot.TeleBot(TOKEN)

CHAT_ID = "-1002198876639", "-1002209280416"

client = Client()

system = {"role": "system", "content": "Ты - NERPA или Нерпа или Нерпочка или нерпа или нерпочка или nerpa, у тебя есть 'дедушка' озеро Байкал который поведал тебе много историй, ты можешь рассказать многое о озере Байкал."}

print("Bot is running...")

@bot.message_handler(commands=['start', 'help'])
def send_welcome(message):
    bot.reply_to(message, "Чтобы пользоваться ботом подпишитесь на эти каналы\nhttps://t.me/baikal_wood_rus\nhttps://t.me/baikal_wood_NRB\nпосле подписки отправьте /done")

@bot.message_handler(commands=['done', 'gotovo'])
def test_subcribe(message):
    USER_ID = message.from_user.id
    if is_subscribed(CHAT_ID, USER_ID) == True:
      bot.reply_to(message, "Привет!\nЯ NERPA_GPT созданная командой BAIKAL_WOOD. Чем могу помочь?")
    else:
      bot.reply_to(message, "Вы не подписаны на каналы. Пожалуйста, подпишитесь, чтобы продолжить.")
      
def is_subscribed(chat_id, user_id):
    try:
        bot.get_chat_member(chat_id, user_id)
        return True
    except ApiTelegramException as e:
            return False

@bot.message_handler(func=lambda message: True)
def echo_all(message):
    response = client.chat.completions.create(
    provider=g4f.Provider.Blackbox,
    model="gpt-3.5-turbo",
    messages=[system, {"role": "user", "content": message.text}]
    )
    bot.reply_to(message, response.choices[0].message.content)

while True:
    bot.infinity_polling()

пробовал переписать проверку на user_id = message.from_user.id

try: 
    chat_member = bot.get_chat_member(channel_id, user_id) 
      
    if chat_member.status != 'left': 
        bot.reply_to(message, "Вы подписаны на канал!") 
    else:  
        bot.reply_to(message, "Вы не подписаны на канал. Пожалуйста, подпишитесь, чтобы продолжить.") 
except Exception as e: 

    bot.reply_to(message, "Произошла ошибка при проверке подписки на канал.") 

Ответы (1 шт):

Автор решения: Hamlet Sargsyan
def is_subscribed(chat_id, user_id):
    chat_member = bot.get_chat_member(chat_id, user_id)
    if chat_member.status in ["member", "administrator", "creator"]:
        return True
    return False

Подробнее про статус пользовался, и какие значения у него может быть можно прочить в документации телеграмм: https://core.telegram.org/bots/api#chatmember

→ Ссылка