@Khanivore

Почему бот в телеграмме не хочет отвечать на сообщения?

код бота
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters
updater = Updater(token='токен')
dispatcher = updater.dispatcher
# Обработка команд
def startCommand(bot, update):
    bot.send_message(chat_id=update.message.chat_id, text='Привет, давай пообщаемся?')
def textMessage(bot, update):
    response = 'Получил Ваше сообщение: ' + str(update.message.text)
    bot.send_message(chat_id=update.message.chat_id, text=response)
# Хендлеры
start_command_handler = CommandHandler('start', startCommand)
text_message_handler = MessageHandler(Filters.text, textMessage)
# Добавляем хендлеры в диспетчер
dispatcher.add_handler(start_command_handler)
dispatcher.add_handler(text_message_handler)
# Начинаем поиск обновлений
updater.start_polling(clean=True)
# Останавливаем бота, если были нажаты Ctrl + C
updater.idle()

код ошибки
C:\oribot>python bot.py
C:\oribot\bot.py:17: TelegramDeprecationWarning: The argument `clean` of `start_polling` is deprecated. Please use `drop_pending_updates` instead.
updater.start_polling(clean=True)
No error handlers are registered, logging exception.
Traceback (most recent call last):
File "C:\Users\medus\AppData\Local\Programs\Python\Python310\lib\site-packages\telegram\ext\dispatcher.py", line 555, in process_update
handler.handle_update(update, self, check, context)
File "C:\Users\medus\AppData\Local\Programs\Python\Python310\lib\site-packages\telegram\ext\handler.py", line 198, in handle_update
return self.callback(update, context)
File "C:\oribot\bot.py", line 6, in startCommand
bot.send_message(update.message.chat_id, 'Привет, давай пообщаемся?')
AttributeError: 'Update' object has no attribute 'send_message'
p.s я знаю что в коде место токена пустует. У меня токен стоит на месте, просто удалил его тут, что бы не светить им.
  • Вопрос задан
  • 560 просмотров
Решения вопроса 1
@PavelMos
Если это на базе примера модуля TelegramBotAPI, то там функции должны выглядеть так, т.к. bot... и context.bot это разные объекты

def startCommand(update, context):
    context.bot.send_message(chat_id=update.message.chat_id, text='Привет, давай пообщаемся?')
def textMessage(update, context):
    response = 'Получил Ваше сообщение: ' + str(update.message.text)
    context.bot.send_message(chat_id=update.message.chat_id, text=response)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Kadabrov
потому что у обьекта 'Update' нет атрибута 'send_message'
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы