@Askhatbek

"A request to the Telegram API was unsuccessful. Error code: 400. Description: Bad Request: chat not found" что мне делать?

У меня вылезает ошибка о том, что чат не найден, при нажатии пользователем на кнопку "Проверка". В итоге вопрос состоит в том, что боту нужно найти 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)
  • Вопрос задан
  • 349 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы