Загрузка...

Asynchronous echo bot for requests in Telegram

Thread in Python created by Sad0w Jun 19, 2024. 254 views

  1. Sad0w
    Всем привет. Решил написать асинхронного эхо бота для Telegram на запросах

    Исходный код с пояснениями:
    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())
     
  2. def
    Прикольно, но бесполезно, как опыт отлично, молодец)
     
  3. ToSa
    ToSa Jun 19, 2024 :beer::beer:guest,смотри
    Telegram: View @ToSa_GG
    :beer::beer:
    28,103 Dec 18, 2021
    согласен с челом выше, максимально бесполезно, но как опыт для работы с запросами пойдет
     
  4. Fekre
    Fekre Jun 19, 2024 1,598 Apr 8, 2019
    не согласен с челами выше, очень полезно
     
  5. ФРУТС
    ФРУТС Jun 20, 2024 Banned 538 Feb 7, 2023
    а есть сравнения такого подхода и подхода фреймворка aiogram?
     
    1. Sad0w Topic starter
      avatarФРУТС, я не сравнивал эти подходы
Loading...