Здравствуйте, как я могу запустить вместе aiogram и веб сервер в aiohttp?
У нашего сервиса есть апи которое должно отправлять запрос на мой веб сервер и обработка должна происходить в боте.
Вот пример создания веб сервера
from aiohttp import web
async def hello(request):
return web.Response(text="Hello, world")
app = web.Application()
app.add_routes([web.get('/helloworld', hello)])
async def run_server():
web.run_app(app, port=5376)
Вот метод запуска бота
import asyncio
from aiogram.utils import executor
from aiogram.utils.executor import start_webhook
from aiohttp.web import run_app
from bot import dp, bot
from buttons.admin import register_admin_handler
from buttons.buyvpn import register_buttons_handler_vpn
from buttons.client.mainmenu.mainmenu import register_client_mainmenu
from buttons.extendvpn import register_buttons_handler_vpn_extend
from buttons.myvpns.myvpns import register_myvpns
from buttons.referal import register_referal_buttons_handler
from cfg import cfg
from handlers.admin import admin_register_handler
from handlers.client import client_register_handler
from server import run_server
from tasks.check_expire import register_tasks, register_exp_notify_3d, register_remove_exp_notify_db, \
register_exp_notify_1d
import locale
async def on_startup(dp):
await bot.set_webhook(cfg["WEBHOOK_URL"])
loop = asyncio.get_event_loop()
if cfg['tasks_enabled']:
loop.create_task(register_tasks())
loop.create_task(register_exp_notify_3d())
loop.create_task(register_exp_notify_1d())
loop.create_task(register_remove_exp_notify_db())
async def on_shutdown(dp):
await bot.delete_webhook()
await dp.storage.close()
await dp.storage.wait_closed()
def main():
locale.setlocale(locale.LC_ALL, 'ru_RU.UTF-8')
print('Starting bot..')
print('Registering handlers..')
client_register_handler() # Регистрация клиентских слэш комманд. (handlers-client.py)
admin_register_handler() # Регистрация админских слэш комманд.
register_client_mainmenu() # Регистрация обработчика кнопок главного меню бота
register_buttons_handler_vpn() # Регистрация обработчика покупки впна
register_buttons_handler_vpn_extend() # Регистрация обработчика продления впна
register_admin_handler() # Регистрация обработчика кнопок админ панели
register_referal_buttons_handler() # Регистрация реферальной системы
register_myvpns() # Регистрация управлением подписками (Мои подписки в главном меню)
print('Handlers registered!')
print('Starting bot polling..')
if not cfg['webhook_enabled']:
executor.start_polling(dp, skip_updates=True, on_startup=on_startup)
else:
start_webhook(
dispatcher=dp,
webhook_path=cfg['WEBHOOK_PATH'],
on_startup=on_startup,
on_shutdown=on_shutdown,
skip_updates=True,
host=cfg['WEBAPP_HOST'],
port=cfg['WEBAPP_PORT'],
)
run_server()
if __name__ == '__main__':
main()
При запуске происходит вот это
Я бы хотел просто создать веб сервер для вебхука и принятия запросов с апи и обрабатывать все в боте. Как это можно сделать. Сейчас вебхуки работают на нгроке.
Мне нужен пример кода как можно запустить это вместе. Только без aiogram v3 (кривая либа)