Делаю бота с проверкой на подписку, и хочу после того как юзер нажал на кнопку проверить подписку. Если есть подписка на каналы, то отправлял кнопку ссылкой на канал. Но бот не отправляет эту кнопку\
Использую Telebot py
import telebot
from telebot import types
from config import Token
bot = telebot.TeleBot(Token)
def start_markup():
markup = types.InlineKeyboardMarkup(row_width=True)
link_keyboardone = types.InlineKeyboardButton(text="1-й Канал", url="https://t.me/+fZFv6dfmHPE3YmUy")
link_keyboardtwo = types.InlineKeyboardButton(text="2-й Канал", url="https://t.me/+CUtxvwB8YPA4MDcy")
check_keyboard = types.InlineKeyboardButton("Проверить✅", callback_data='check')
markup.add(link_keyboardone,link_keyboardtwo,check_keyboard)
return markup
@bot.message_handler(commands=['start'])
def start(message):
chat_id = message.chat.id
first_name = message.chat.first_name
bot.send_message(chat_id, f"Привет, {first_name}!\n"
"Чтобы получить ссылку на канал, тебе нужно подписаться на эти каналы", reply_markup=start_markup())
def check(call):
status = ['creator', 'administrator', 'member']
for i in status:
if i == bot.get_chat_member(chat_id='-1001654199176', user_id=call.message.chat.id).status:
check2(call)
break
else:
bot.send_message(call.message.chat.id, "Подпишись на каналы!", reply_markup=start_markup())
def check2(call):
markup = types.InlineKeyboardMarkup(row_width=True)
status = ['creator', 'administrator', 'member']
for i in status:
if i == bot.get_chat_member(chat_id='-1001675076955', user_id=call.message.chat.id).status:
done = types.InlineKeyboardButton(text="Держи Ссылку ", url="https://t.me/+fZFv6dfmHPE3YmUy")
break
else:
bot.send_message(call.message.chat.id, "Подпишись на каналы!", reply_markup=start_markup())
markup.add(done)
@bot.callback_query_handler(func=lambda call: True)
def callback(call):
if call.data == 'check':
bot.delete_message(chat_id=call.message.chat.id, message_id=call.message.id)
check(call)
print("goo")
bot.polling(none_stop=True)