Как вставить ссылку на профиль пользователя или чат в сообщении с помощью телетона? - PullRequest
1 голос
/ 16 октября 2019

Создание нового сообщения в Telethon Я пытаюсь сделать что-то вроде «Пользователь (ссылка) в чате (ссылка) опубликовал что-то», но не удалось.

Согласно https://github.com/LonamiWebs/Telethon/wiki/Special-links, Я имеюпробовал ссылки типа tg: // user? id = 123 и tg: // openmessage? chat_id = 123, но это дает ссылки в тексте, которые не работают.

Вот пример:

@client.on(events.NewMessage)
async def handler(event):
    sender = await event.get_sender()
    sender_id = event.sender_id
    sender_link = 'tg://user?id=' + str(sender_id)
    payload = '[%s] (%s) said something' % (sender.first_name, sender_link)

Я ожидаю сообщение с гиперссылкой на имя пользователя, но получаю [Alex] (tg: // user? Id = 123), и эта ссылка ведет в никуда.

Ответы [ 2 ]

2 голосов
/ 16 октября 2019

Вам необходимо удалить пробел между [...] и (...). Вы должны иметь [%s](%s).

0 голосов
/ 16 октября 2019

Твит прав, но есть несколько альтернатив. Вы можете вручную вставить MessageEntityMention в анализатор, или вы можете использовать HTML parse_mode и формат. Обратите внимание, что оба они лучше, рассмотрим, например, пользователя с именем hello](tg://user?id=321)[. Этот пользователь не получит ссылку, поэтому вам следует избегать уценки, поскольку избежать этого невозможно.

...