Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Бот не отвечает на сообщения

Саша Фоктов Ученик (81), на голосовании 8 месяцев назад
бот не отвечает на сообщения на python
import aiogram
from aiogram import Bot, Dispatcher, types, executor
token = "token"
bot = Bot(token = token)
dp = Dispatcher(bot = bot)
@bot.message_handler(commands=['start'])
def send_welcome(message):
bot.reply_to(message, "gret4t")
async def echo_handler (message:types.Message):
await message.answer(text="привет")
async def uhuyu(message:types.Message):
if message.text.lower() == "привет":
await message.answer(text = "привет чем могу помочь")
else:
await echo_handler(message)

if __name__ == "__main__":
executor.start_polling(dispatcher=dp)
ошибка
Traceback (most recent call last):
File "C:\Users\Vadim\PycharmProjects\pythonProject1\dddd.py", line 1, in <module>
import aiogram
File "C:\Users\Vadim\PycharmProjects\pythonProject1\venv\lib\site-packages\aiogram\__init__.py", line 9, in <module>
from . import bot
File "C:\Users\Vadim\PycharmProjects\pythonProject1\venv\lib\site-packages\aiogram\bot\__init__.py", line 2, in <module>
from .base import BaseBot
File "C:\Users\Vadim\PycharmProjects\pythonProject1\venv\lib\site-packages\aiogram\bot\base.py", line 17, in <module>
from .api import TelegramAPIServer, TELEGRAM_PRODUCTION
ImportError: cannot import name 'TelegramAPIServer' from ' aiogram.bot .api' (C:\Users\Vadim\PycharmProjects\pythonProject1\venv\lib\site-packages\aiogram\bot\api.py)

Process finished with exit code 1
Голосование за лучший ответ
Татьяна Просветленный (36384) 9 месяцев назад
Ваш код содержит несколько ошибок, которые я попытаюсь исправить:

- Вы импортировали модуль `aiogram`, но не использовали его в декораторе `@bot.message_handler`. Вместо этого, вы должны использовать `@dp.message_handler`, где `dp` - это экземпляр класса `Dispatcher`, который вы создали.
- Вы определили функцию `uhuyu`, но не привязали ее к какому-либо типу сообщения. Вы должны добавить декоратор `@dp.message_handler(content_types=['text'])`, чтобы ваша функция обрабатывала текстовые сообщения.
- Вы не вызвали функцию `uhuyu` внутри функции `echo_handler`. Вы должны добавить строку `await uhuyu(message)` после строки `await message.answer(text="привет")`.

 import aiogram  
from aiogram import Bot, Dispatcher, types, executor
token = "token"
bot = Bot(token = token)
dp = Dispatcher(bot = bot)

@dp.message_handler(commands=['start'])
def send_welcome(message):
bot.reply_to(message, "gret4t")

async def echo_handler (message:types.Message):
await message.answer(text="привет")
await uhuyu(message) # добавил эту строку

@dp.message_handler(content_types=['text']) # добавила этот декоратор
async def uhuyu(message:types.Message):
if message.text.lower() == "привет":
await message.answer(text = "привет чем могу помочь")
else:
await echo_handler(message)

if __name__ == "__main__":
executor.start_polling(dispatcher=dp)
Похожие вопросы