-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathanothercode.py
51 lines (36 loc) · 1.59 KB
/
anothercode.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# import logging
import asyncio
from aiogram import Bot, Dispatcher, types
from aiogram.dispatcher.webhook import configure_app
from aiohttp import web
# Токен Telegram-бота
API_TOKEN = '123456:Abcdefghijk'
# Настройка логирования
# logging.basicConfig(level=logging.INFO)
# Бот и диспетчер бота
bot = Bot(token=API_TOKEN)
dp = Dispatcher(bot)
# Создаём объект веб-сервера
app = web.Application()
# Обработка входящих запросов от стороннего API
async def api_handler(request):
return web.json_response({"status": "ok", "message": "hello from api handler"}, status=200)
# Хэндлер на любое сообщение боту
@dp.message_handler(content_types=types.ContentType.ANY)
async def echo(message: types.Message):
await message.reply("I'm bot and I see your message!")
async def on_startup():
# Установка telegram-вебхука и подключение бота к aiohttp
await bot.set_webhook("http://127.0.0.1:9900/bot")
configure_app(dp, app, "/bot")
# Установка роутинга для приёма входящих от сторонних клиентов
app.add_routes([web.get('/api', api_handler)])
async def on_shutdown():
await bot.close()
if __name__ == '__main__':
# Предстартовая подготовка (вызов on_startup())
loop = asyncio.get_event_loop()
loop.run_until_complete(on_startup())
app.on_shutdown.append(on_shutdown)
# Запуск
web.run_app(app, port=9900, access_log=None)