Не работают вебхуки Aiogram
Не работают вебхуки на библиотеки Aiogram3, подскажите где ошибся, в WEBHOOK_URL белый ip-адрес, на котором открыт порт 8000.
main.py
import logging
import uvicorn
from fastapi import FastAPI
from aiogram import Bot, Dispatcher, types
from aiogram.fsm.storage.memory import MemoryStorage
from handler import start_router
from config import BOT_TOKEN
logger = logging.getLogger(__name__)
logging.basicConfig(
level=logging.INFO,
format=u"%(filename)s:%(lineno)d #%(levelname)-8s [%(asctime)s] - %(name)s - %(message)s",
)
storage = MemoryStorage()
WEBHOOK_PATH = f"/bot/{BOT_TOKEN}"
WEBHOOK_URL = "217.107.197.108" + WEBHOOK_PATH
app = FastAPI()
bot = Bot(token=BOT_TOKEN, parse_mode="HTML")
dp = Dispatcher(storage=storage)
@app.on_event("startup")
async def on_startup():
webhook_info = await bot.get_webhook_info()
if webhook_info != WEBHOOK_URL:
await bot.set_webhook(url=WEBHOOK_URL)
logger.info("App started")
dp.include_router(start_router)
@app.post(WEBHOOK_PATH)
async def bot_webhook(update: dict):
telegram_update = types.Update(**update)
await dp.feed_update(bot=bot, update=telegram_update)
@app.on_event("shutdown")
async def on_shutdown():
await bot.session.close()
logger.info("App stopped")
if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0", port=8000)
handler.py
from aiogram import types, Router
from aiogram.filters import Command
start_router = Router()
@start_router.message(Command("start"))
async def start_handler(message: types.Message):
await message.answer(f"Hey {message.from_user.first_name}")
Источник: Stack Overflow на русском