Боты Telegram получат второе имя пользователя, которое может кончаться не на «bot», а на app, agent, ai, game или gay. Добавить такое имя сможет владелец бота с подпиской Telegram Premium, по одному на бота. По окончанию имени клиент подписывает бота в строке статуса: вместо привычного «бот» там будет «агент», «ИИ», «игра» или «приложение». Методы уже есть в TDLib, подпись — в коде Telegram Desktop, тексты ошибок — в Android 13.0.2, вышедшем 13 октября. В серверном конфиге на 9 октября ключей для неё ещё не было.
Что меняется в правиле имён
Сейчас юзернейм бота обязан кончаться на «bot»: «tetris_bot» или «TetrisBot», так требует документация BotFather. Это правило остаётся: основное имя бота по-прежнему кончается на «bot».
Новое — второе имя (в схеме TDLib оно называется secondary_username). Оно не заменяет основное, а живёт рядом с ним в списке ссылок бота, как дополнительные имена каналов и аккаунтов. Ограничений три:
- имя должно кончаться на одно из разрешённых окончаний, список которых присылает сервер;
- у бота может быть только одно такое имя;
- у одного владельца таких ботов не больше, чем задано серверным лимитом; по умолчанию TDLib ставит два.
Если при создании бота выбрать имя без «bot» на конце, TDLib описывает такой порядок: выбранное имя станет вторым, а основное, на «bot», сервер присвоит боту сам.
Как это будет выглядеть для владельца бота
Пока сервер не прислал список окончаний, добавить второе имя нельзя ни в одном клиенте. Когда включат, путь читается по строкам Android-клиента:
- в поле имени появится подсказка «должно кончаться на „bot“ — или на app, agent… с Telegram Premium»;
- имя с новым окончанием без подписки остановит сообщение о том, что такие имена требуют Premium, с кнопкой подписки;
- третий бот с таким именем упрётся в лимит: «у вас может быть только N таких имён на всех ботах»;
- вторую попытку на том же боте остановит «у этого бота уже есть Premium-имя, удалите его, прежде чем добавлять новое».
Проверка свободного имени та же, что для нового бота, с отдельным флагом «для второго имени». Удалить второе имя можно в любой момент.
Где появится подпись
Подпись — это строка под именем бота в шапке чата и в профиле, где сейчас написано «бот». Telegram Desktop определяет её короткой функцией: берёт первое имя в списке ссылок бота и сверяет его окончание с пятью вариантами, без учёта регистра. Совпало — вместо «бот» печатается слово из таблицы. Не совпало — остаётся «бот».
| Окончание | Английский | Русский (на платформе переводов) |
|---|---|---|
| app | app | приложение |
| agent | agent | агент |
| ai | ai | ИИ |
| game | game | игра |
| gay | gay | гей |
Важна деталь, которую из анонсов не видно: если сервер присылает для бота число активных пользователей за месяц, строка статуса показывает его, и подпись по окончанию до неё не доходит. То есть «агент» увидят в основном у ботов, у которых такого счётчика нет.
Вторая деталь — проверяется первое имя в списке, каким бы оно ни было. Порядок ссылок владелец бота меняет перетаскиванием, но можно ли поставить наверх именно второе имя, схема не уточняет. От этого зависит, увидят ли подпись у бота, у которого основное имя на «bot» стоит первым.
Пятое окончание прошло путь короче, чем его обсуждение. В исходниках Desktop оно появилось 6 октября с английским текстом «non-binary», а 8 октября на платформе переводов английский вариант заменили на «gay». Русский перевод там же за два дня успел побыть «гей», «геи» и «gay», так что финальное слово ещё может смениться. Остальные четыре окончания переведены без разногласий.
Бесплатно ли это для Premium
Точнее сказать так: второе имя доступно только с Premium, и отдельной платы за него в коде нет. Метод добавления в TDLib принимает два аргумента — бота и имя, без цены, звёзд или Gram. Серверный метод bots.addUsername в схеме MTProto устроен так же. Список разрешённых окончаний TDLib называет «Premium-суффиксами», а Android — «Premium-именем». Купить такое имя без подписки в нынешнем коде нечем.
С Fragment механика не пересекается. Схема прямо называет второе имя «некоммерческим» (non-collectible): это не NFT-юзернейм с аукциона, его не продают и не передают, а занимают, как обычное имя, если оно свободно. Коллекционные имена с Fragment бот и так может носить, и они тоже бывают без «bot» на конце.
Что будет при окончании подписки, схема говорит одной строкой: если второе имя отключено, включить его обратно можно только с Premium. Из этого следует гипотеза, что с истечением Premium имя отключается, а не освобождается, — но прямого описания такого сценария в коде нет.
Откуда сервер берёт список окончаний
Пять окончаний в Telegram Desktop записаны прямо в коде: это словарь для подписи. Разрешённые для регистрации окончания TDLib читает из серверного конфига приложения, ключа bot_allowed_suffixes, и отдаёт клиентам событием updateAllowedBotUsernamePremiumSuffixes (коммит от 30 сентября). Лимит на владельца приходит ключом bot_additional_usernames_limit. В боевом конфиге на 9 октября ни одного из этих ключей не было, поэтому список окончаний на сервере может оказаться короче или длиннее пяти, известных клиентам.




