Всем привет. Решил написать асинхронного эхо бота для Telegram на запросах Исходный код с пояснениями: import asyncio import aiohttp async def main(): token = "" # здесь хранится токен бота offset = 0 # необходима, чтобы стирать уже обработанные сообщения async with aiohttp.ClientSession() as session: # создаём сессию while True: getUpdates = await session.get(f"https://api.telegram.org/bot{token}/getUpdates" + (f"?offset={offset}" if offset > 0 else "")) # получаем все события бота result = await getUpdates.json() # получаем json if result["result"].__len__() > 0: # если событий больше нуля offset = result["result"][0]["update_id"] + 1 # получаем offset, чтобы стереть это событие message = result["result"][0]["message"]["text"] # получаем сообщение пользователя chat_id = result["result"][0]["message"]["chat"]["id"] # получаем айди чата await session.get(f"https://api.telegram.org/bot{token}/sendMessage?chat_id={chat_id}&text={message}") # отправляем сообщение в ответ await asyncio.sleep(0.3) # задержка в 300 милисекунд, чтобы избежать ошибку 429. При необходимости, можно уменьшить или увеличить значение asyncio.run(main()) Python import asyncio import aiohttp async def main(): token = "" # здесь хранится токен бота offset = 0 # необходима, чтобы стирать уже обработанные сообщения async with aiohttp.ClientSession() as session: # создаём сессию while True: getUpdates = await session.get(f"https://api.telegram.org/bot{token}/getUpdates" + (f"?offset={offset}" if offset > 0 else "")) # получаем все события бота result = await getUpdates.json() # получаем json if result["result"].__len__() > 0: # если событий больше нуля offset = result["result"][0]["update_id"] + 1 # получаем offset, чтобы стереть это событие message = result["result"][0]["message"]["text"] # получаем сообщение пользователя chat_id = result["result"][0]["message"]["chat"]["id"] # получаем айди чата await session.get(f"https://api.telegram.org/bot{token}/sendMessage?chat_id={chat_id}&text={message}") # отправляем сообщение в ответ await asyncio.sleep(0.3) # задержка в 300 милисекунд, чтобы избежать ошибку 429. При необходимости, можно уменьшить или увеличить значение asyncio.run(main())