Отправка сообщений от имени пользователя, через телегам-бота

Я разрабатываю бота для рассылки сообщений, и у меня возник вопрос о том, как реализовать авторизацию пользователя в боте, чтобы он мог отправлять сообщения от имени этого пользователя.

Представим ситуацию: пользователь заходит в бота и вводит команду для авторизации аккаунта.

Затем бот от пользователя, запустившего бота, получает информацию об аккаунте, от имени которого будет осуществляться рассылка: Api_hash и Api_id пользователя.

После этого бот может отправлять сообщения от имени пользователя, чьи Api_hash и Api_id были переданы.

Вопрос в том, как именно реализовать то, что я рассказывал выше, на python?

Для запуска бота я использую aiogram-3.x.


Ответы (1 шт):

Автор решения: rotabor

Решение такое: бот должен запустить телеграм-клиента с использованием TDlib API. См. описание Telegram API. Пример библиотеки для Python и её использования:

from telegram.client import Telegram
from telegram.text import Spoiler

tg = Telegram(
    api_id='api_id',
    api_hash='api_hash',
    phone='+31611111111',  # you can pass 'bot_token' instead
    database_encryption_key='changekey123',
    files_directory='/tmp/.tdlib_files/',
)
tg.login()

# If this is the first run, the library needs to preload all chats.
# Otherwise, the message will not be sent.
result = tg.get_chats()
result.wait()

chat_id: int
result = tg.send_message(chat_id, Spoiler('Hello world!'))

# `tdlib` is asynchronous, so `python-telegram` always returns an `AsyncResult` object.
# You can receive a result with the `wait` method of this object.
result.wait()
print(result.update)

tg.stop()  # You must call `stop` at the end of the script.
→ Ссылка