user
Макрос !{user} создаёт ссылку на профиль пользователя Telegram. Ссылка может вести:
- На профиль пользователя в Telegram (через
tg://user?id=илиt.me/username) - В админку бота (на страницу управления пользователем)
💡 Совет: Используйте макрос, чтобы показывать имя пользователя в виде кликабельной ссылки. Это удобно для списков участников, логов, уведомлений администраторам.
Пример результата:
<a href="tg://user?id=123456789">Иван Петров</a>
Синтаксис
!{user|
path: from;
text: Кастомный текст;
admin;
linkOnly;
byUsername;
}
Короткая форма (без параметров):
!{user}
В короткой форме макрос создаёт ссылку на отправителя сообщения (from) с его именем в качестве текста.
Параметры
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| id | Число | ❌ Нет | ID пользователя |
| username | Строка | ❌ Нет | Username пользователя (с @ или без) |
| path | Строка | ❌ Нет | Путь к объекту с данными пользователя |
| text | Строка | ❌ Нет | Текст ссылки (вместо имени пользователя) |
| admin | Boolean | ❌ Нет | Ссылка на профиль в админке бота |
| linkOnly | Boolean | ❌ Нет | Только URL (без HTML-обёртки) |
| byUsername | Boolean | ❌ Нет | Ссылка через t.me/username (вместо tg://user?id=) |
Значения параметра path
Параметр path позволяет указать, откуда брать данные пользователя.
| Значение | Описание |
|---|---|
| from | Отправитель текущего сообщения (значение по умолчанию) |
| target | Целевой пользователь — тот, над кем выполняется действие |
| reply | Автор сообщения, на которое ответили |
Примеры
Отправитель текущего сообщения (по умолчанию)
!{user|path: from}
То же самое, что и !{user}
Целевой пользователь
!{user|path: target}
Автор сообщения, на которое ответили
!{user|path: reply}
💡 В обычном сообщении
fromиtarget— это один и тот же человек. Они расходятся в реакциях, которые работают по ответу, по внешнему сообщению или по списку пользователей: тамtarget— тот, над кем выполняется действие, аfromостаётся тем, кто вызвал реакцию.
💡
pathможет также указывать на любой объект в контексте, содержащий поляid,first_name,last_name,username.
Примеры
Простейший пример (отправитель сообщения)
!{user}
Результат (если отправитель имеет имя «Иван Петров» и ID 123456789):
<a href="tg://user?id=123456789">Иван Петров</a>
Ссылка на целевого пользователя
!{user|path: target}
Ссылка на автора сообщения, на которое ответили
!{user|path: reply}
С кастомным текстом
!{user|path: target; text: Написать администратору}
Результат:
<a href="tg://user?id=123456789">Написать администратору</a>
По конкретному ID
!{user|id: 123456789}
По username
!{user|username: durov}
Результат:
<a href="https://t.me/durov">@durov</a>
Типичные ошибки и их решение
| Ошибка | Причина | Решение |
|---|---|---|
| Ссылка ведёт не туда | Не указан path, поэтому взят отправитель (from) |
Укажите явно path: target или path: reply |
Текст ссылки — "user" |
Не удалось определить имя пользователя | Укажите text явно |
| Ссылка в админку не работает | Не указан id |
Убедитесь, что у пользователя есть ID |
| byUsername не срабатывает | У пользователя нет username | Проверьте, есть ли у пользователя username |
Дополнительные примеры
Использование переменных
!{user|id: ${target.from.id}}
!{user|username: ${from.username}}
Ссылка на профиль в админке бота
!{user|path: target; text: Открыть в админке; admin}
Только ссылка без HTML-обёртки
!{user|path: target; linkOnly}
Ссылка через t.me вместо tg://user
!{user|path: target; byUsername}
Комбинация параметров
!{user|
path: target;
text: Связаться с пользователем;
byUsername;
}