@welldanzi

Почему выходит сообщение «A request to the Telegram API was unsuccessful. Error code: 400. Description: Bad Request: user not found»?

Доброго времени суток! Прошу строго не судить.
Со всем недавно начал изучать python, одновременно с этим выполняю задание по учебе. В общем.
Написал бота для телеграм канала, запускаю и вроде всё ок, но! Если в чате группы написать /start, то бот выдаст в группе такую ошибку "A request to the Telegram API was unsuccessful. Error code: 400. Description: Bad Request: user not found"
При этом в самой IDE (PyCharm) ошибок нет.
Подскажите пожалуйста, что не так?
# Импортируем необходимые библиотеки
import telebot
import random

# Определяем переменные
bot = telebot.TeleBot('59*****')  # Токен.
Group_chat_ID = ******  # ID группы в Telegram


def random_user(Group_chat_ID):
    members = bot.get_chat_members_count(Group_chat_ID)
    random_user_id = random.randint(0, members)
    user = bot.get_chat_member(Group_chat_ID, random_user_id)
    bot.send_message(Group_chat_ID, 'Поздравляем, {0.user.first_name} стал старшим в нашем чате !'.format(user))


@bot.message_handler(content_types=['text'])
def get_text_messages(message):
    if message.text == "/test":
        bot.send_message(Group_chat_ID, "Привет, чем я могу тебе помочь?")
    if message.text == "/start":
        try:
            random_user(Group_chat_ID)
        except Exception as e:
            bot.send_message(Group_chat_ID, 'Ошибка: {0}'.format(e));
        finally:
            return


bot.polling(none_stop=True, interval=0)


Когда пишешь команду /test, то он выводит нужное сообщение в чате "Привет, чем я могу тебе помочь?"
  • Вопрос задан
  • 225 просмотров
Решения вопроса 1
Ошибка здесь random_user_id = random.randint(0, members))
random_user_id - это случайное число. и вероятность совпадения этого числа с айди пользователя из чата очень мала. поэтому нужно получать всех пользователей либо их айди и выбирать случайный. Из пользователей, которые уже в чате, а не просто случайное число
с помощью методов telegram bot api это сделать нельзя
можно получить пользователей чата через telegram api или из собственной бд бота, если он такую вел
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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