Особенности работы пользовательских ссылок в Telegram-ботах на Telegraf

При использовании библиотеки Telegraf для создания Telegram-бота возникает специфическое ограничение при отправке ссылок на профили пользователей.

Рассмотрим пример кода:

bot.command('profile', async ctx => {
    await ctx.reply(
        `<a href="tg://user?id=12345">Профиль</a>`,
        { parse_mode: 'HTML' }
    );
});

Данный код отправляет кликабельную ссылку "Профиль", использующую специальный протокол Telegram tg://user?id=.

Ключевое ограничение

Ссылка функционирует корректно только в одном случае: когда параметр id соответствует идентификатору текущего пользователя (того, кто взаимодействует с ботом).

Если попытаться указать ID другого пользователя, ссылка не будет работать как ожидается - она либо не станет кликабельной, либо не приведет к нужному профилю.

Практический вывод

  • Данный метод подходит только для создания ссылок на профиль самого пользователя
  • Для ссылок на других пользователей необходимо использовать альтернативные подходы
  • Ограничение связано с политиками безопасности Telegram