У меня вылезает ошибка о том, что чат не найден, при нажатии пользователем на кнопку "Проверка". В итоге вопрос состоит в том, что боту нужно найти ID пользователя и, используя его, проверить, находится данный пользователей в этих каналах или нет?
from subprocess import call
import telebot
from telebot import types
bot = telebot.TeleBot('5331065593:AAGvquZCn8n7PBrhKQDTu9obC8iaXuY2cyw')
channels = ["https://t.me/gopro32", "https://t.me/ggooogggoooggg", "https://t.me/helpmepleaseaaaaa", "https://t.me/+EOKxgInxnAwzZDgy"]
@bot.message_handler(commands = ["start"])
def start_message(p, res = False):
markup = types.ReplyKeyboardMarkup(resize_keyboard = True)
item1 = types.KeyboardButton("Выполнить задание")
markup.add(item1)
item2 = types.KeyboardButton("Тех-поддержка")
markup.add(item2)
item3 = types.KeyboardButton("Вывод средств")
markup.add(item3)
item4 = types.KeyboardButton("Реклама")
markup.add(item4)
t = b'\xF0\x9F\x91\x8B'.decode('utf-8')
bot.send_message(p.from_user.id, '@' + str(p.from_user.username))
bot.send_message(p.chat.id, t + 'Я готов помочь вам заработать, нажмите "Выполнить задание", чтобы начать выполнение заданий', reply_markup = markup)
@bot.message_handler(content_types = ["text"])
def ready(message):
if message.text.strip() == "Выполнить задание":
markup = types.InlineKeyboardMarkup()
btn_linkedsite = types.InlineKeyboardButton(text = 'Первый канал', url = channels[0])
markup.add(btn_linkedsite)
btn_linkedsite2 = types.InlineKeyboardButton(text = 'Второй канал', url = channels[1])
markup.add(btn_linkedsite2)
btn_linkedsite3 = types.InlineKeyboardButton(text = 'Третий канал', url = channels[2])
markup.add(btn_linkedsite3)
btn_linkedsite4 = types.InlineKeyboardButton(text = 'Четвертый канал', url = channels[3])
markup.add(btn_linkedsite4)
btn_control = types.InlineKeyboardButton(text = 'Проверить', callback_data = "проверка")
markup.add(btn_control)
bot.send_message(message.chat.id, "Надо подписаться на 4 канала, чтобы получить свой рубль",reply_markup = markup)
elif message.text.strip() == 'Тех-поддержка':
bot.send_message(message.chat.id, "Возникли проблемы или недоработки напиши нам @TRXLHXDDDD")
else:
bot.send_message(message.chat.id, "Ты о чем, я не понимать")
@bot.callback_query_handler(func=lambda c: c.data == 'проверка')
def checkSub(callback_query: types.CallbackQuery):
bot.answer_callback_query(callback_query.id)
for i in range(1, len(channels), 1):
if checksub(bot.get_chat_member(chat_id = channels[i], user_id = callback_query.from_user.id)):
getrubl()
else:
bot.send_message(callback_query.chat.id, "Для получения рубля нужно подписать на канал")
def getrubl(message: types.Message):
bot.send_message(message.chat.id, "Молодцы, сейчас будем передавать деньги")
a = "rubl"
def checksub(chat_member): #для того чтобы эта функция работала, надо бота сделать администратором в данном канале
print(chat_member['status'])
if chat_member['status'] != 'left':
return True
else:
return False
bot.polling(none_stop=True, interval=0)