Отправка сообщений от имени пользователя, через телегам-бота
Я разрабатываю бота для рассылки сообщений, и у меня возник вопрос о том, как реализовать авторизацию пользователя в боте, чтобы он мог отправлять сообщения от имени этого пользователя.
Представим ситуацию: пользователь заходит в бота и вводит команду для авторизации аккаунта.
Затем бот от пользователя, запустившего бота, получает информацию об аккаунте, от имени которого будет осуществляться рассылка: Api_hash и Api_id пользователя.
После этого бот может отправлять сообщения от имени пользователя, чьи Api_hash и Api_id были переданы.
Вопрос в том, как именно реализовать то, что я рассказывал выше, на python?
Для запуска бота я использую aiogram-3.x.
Ответы (1 шт):
Решение такое: бот должен запустить телеграм-клиента с использованием 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.