@Asriel

Как отправить сообщение зная id пользователя в Telegram?

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

При отправке сообщения выдает ошибку
Request caused struct.error: argument out of range: GetUsersRequest(id=[InputUse
r(user_id=5091977781, access_hash=0)])


Вот сам код
from telethon import TelegramClient, events
import asyncio

api_id = [api_id]
api_hash = "[api_hash]"
channel = -1001379139877
client = TelegramClient('bot', api_id, api_hash)

@client.on(events.NewMessage(chats=channel))
async def my_event_handler(event):
if "Первый, кто напишет" in str(event.message.message):
       await client.send_message(5091977781, "+")

client.start()
client.run_until_disconnected()


Почему происходит такая ошибка и как мне отправить сообщения?

P.S: переписка с пользователем есть
  • Вопрос задан
  • 2551 просмотр
Пригласить эксперта
Ответы на вопрос 1
phaggi
@phaggi Куратор тега Python
лужу, паяю, ЭВМы починяю
Простой гуглинг позволил быстро найти на stackowerflow следующее:

from telethon import utils
real_id, peer_type = utils.resolve_id(-1001234567891)

print(real_id)  # 1234567891
print(peer_type)  # <class 'telethon.tl.types.PeerChannel'>

peer = peer_type(real_id)
print(peer)  # PeerChannel(channel_id=1234567891)


Но вам лучше изучить этот вопрос подробнее, там есть продолжение, т.к. есть нюансы.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы