Загрузка...

How are Telegram Bota **** arranged?

Thread in Python created by IlyaZaigralov Feb 5, 2025. 177 views

  1. IlyaZaigralov
    IlyaZaigralov Topic starter Feb 5, 2025 Оказываю услуги видео и дизайна 57 Aug 2, 2022
    Привет, ребят, если я подключаю новый скрипт для telegram бота, беру его токен, вставляю, но базы данных о пользователях с кем раньше общался нет, то как узнать?
     
  2. delovar
    delovar Feb 5, 2025 305 Apr 27, 2019
    Написать скрипт, который будет от 1 до 8_000_000_000 делать запрос на метод getChat (этот метод долгий сильно, ну типа 30 / 8_000_000_000 = сколько секунд он будет парсить)
    Есть и боты по типу @BotRecoveryRobot (noad), только там надо подписку иметь чтобы получить id тех кто писал боту (и мб не заблочил лс с ним)
     
  3. derkown
    никак
     
    1. View previous comments (1)
    2. IlyaZaigralov Topic starter
      derkown,
      Если вы запускаете новый скрипт с новым токеном и у вас отсутствует база данных с историей пользователей, то бот не "знает" о предыдущих сообщениях. Чтобы восстановить информацию о пользователях, можно сделать следующее:


      Восстановление из резервной копии:
      Если у вас была база данных с предыдущими взаимодействиями, перенесите её в новую среду. Обычно база данных хранится локально или в облаке – убедитесь, что вы сохраняете её между запусками.
      Повторное получение данных через API Telegram:
      Вы можете использовать методы Telethon, такие как iter_dialogs(), чтобы получить список всех диалогов и пользователей, с которыми бот общался. При первом запуске нового скрипта выполните полную выгрузку диалогов. Таким образом, бот сможет восстановить базу контактов, извлекая данные о пользователях из истории сообщений.
      Синхронизация с историей сообщений:
      Разработайте модуль, который при старте нового скрипта запрашивает историю диалогов и сохраняет в локальную базу информацию о пользователях (ID, username, имя, фамилия и т.д.). Это позволит «собрать» данные о всех пользователях, с которыми бот имел контакт ранее.


      Таким образом, если база данных отсутствует, можно восстановить информацию через API Telegram, выгрузив историю диалогов и обновив локальную базу пользователей.
    3. IlyaZaigralov Topic starter
      derkown, я ошибся походу это только для бот юзеров, короч изучаю еще
    4. IlyaZaigralov Topic starter
      derkown,

      Да, с помощью библиотеки Telethon можно управлять Telegram-ботом. Telethon — это асинхронная библиотека на Python, предназначенная для работы с Telegram API. Она позволяет создавать как пользовательских ботов (userbot), так и управлять ботами, зарегистрированными через BotFather.



      **Пример использования Telethon для управления ботом:**



      1. **Установка библиотеки:**

      ```bash

      pip install telethon

      ```



      2. **Создание скрипта для управления ботом:**

      ```Python

      from telethon import TelegramClient, events



      # Укажите API ID и API Hash вашего приложения

      api_id = 'YOUR_API_ID'

      api_hash = 'YOUR_API_HASH'

      # Токен вашего бота

      bot_token = 'YOUR_BOT_TOKEN'



      # Создание клиента

      client = TelegramClient('bot_session', api_id, api_hash).start(bot_token=bot_token)



      # Обработчик входящих сообщений

      Client.on(events.NewMessage)

      async def handler(event):

      sender = await event.get_sender()

      sender_id = sender.id

      message_text = event.raw_text

      # Логика обработки сообщений

      await event.reply('Привет! Это ответ от бота.')



      # Запуск клиента

      client.run_until_disconnected()

      ```



      В этом примере:

      - Мы создаем экземпляр `TelegramClient` с использованием API ID, API Hash и токена бота.

      - Регистрируем обработчик для новых сообщений с помощью декоратора `@client.on(events.NewMessage)`.

      - Внутри обработчика можно реализовать любую логику обработки входящих сообщений и отправки ответов.



      **Важно:**

      - Telethon предоставляет более низкоуровневый доступ к Telegram API по сравнению с библиотеками, такими как `python-telegram-bot` или `aiogram`. Это означает, что некоторые задачи могут требовать больше кода и понимания внутренней работы Telegram.

      - Если вы уже используете `aiogram` для разработки бота, и вам требуется дополнительный функционал, который предоставляет Telethon (например, доступ к методам, недоступным в Bot API), вы можете рассмотреть возможность комбинирования этих библиотек. Однако это может усложнить архитектуру вашего приложения и потребует тщательного управления асинхронными задачами.



      Таким образом, Telethon можно использовать для управления Telegram-ботом, предоставляя широкий спектр возможностей для взаимодействия с Telegram API.


      короче надо тест
    5. View the next comments (1)
  4. coolmag3142
    Я обычно если надо хранить пользователей их в json чик закидываю, ну по хорошему в нормальную бд
     
Top
Loading...