Проверка подписки пользователя на канал телеграмм Telebot InlineKeyboard

Рейтинг: 1Ответов: 1Опубликовано: 19.06.2023

Проверка работает через

  for i in statuss:
    if i == bot.get_chat_member(chat_id=my_channel_id, user_id=message.from_user.id).status:
        markup.add(btnsub)
        markup.add(btngetmat1)
        bot.send_message(message.chat.id,"Здравствуйте, " + message.chat.username + ' 👋\n\n' + 'Подпишитесь на наш телеграм-канал\n и получите каталоги нашей продукции.👇',
                         reply_markup=markup)
        break
else:

    msg2 = bot.send_message(message.chat.id,
                     "Здравствуйте, " + message.chat.username + ' 👋\n\n' + 'Подпишитесь на наш телеграм-канал\n и получите каталоги нашей продукции.👇',
                     reply_markup=None)
    markup.add(btnsub,btngetmat2)
    msg = bot.send_message(message.chat.id, "Подпишись на канал для продолжения",reply_markup=markup)

кнопка "btngetmat2" провести проверку, после чего я вызываю start(call.message). но user id уже получается бота а не пользователя, и выходит что вторая проверка проходит, потому что бот в подписках есть.

Ответы

▲ 0

добавил

user_id = message.chat.id

и заменил

chat_id=my_channel_id, user_id=message.from_user.id

на

hat_id=my_channel_id, user_id=user_id

все заработало