В понедельник почувствовал внезапный приступ альтруизма. Захотелось как-то проявить себя, принести пользу обществу, качнуть маятник.

Параллельно с этим, вынашивал мысль бота для создания закрепов. Я уже делал таких ботов, но они все были под конкретного заказчика - для фиксированных групп и каналов. То есть в бота вся информация была вшита заранее. Мне же хотелось универсальное решение. Но был нюанс.

Сложность заключалась в том, чтобы связать пользователя бота (то есть его личный диалог) с каналом или группой этого пользователя. Я начал ковырять решения.

Первый шаг всегда одинаковый - сделать бота админом. Дальше есть варианты: 1. Скинуть название канала в бота, затем переслать какое-нибудь сообщение из этого канала или группы в бота. или 2. Сгенерировать уникальный код в боте, затем переслать этот код в канал или группу.

Я реализовал оба варианта, и они оба мне не понравились. Пользователю приходилось переключаться между чатами несколько раз - отстой, паршивый UX, так не пойдет. Меньше всего мне хотелось, чтобы пользователь чувствовал раздражение или потерянность в этом процессе.

Затем меня осенило: телеграм уведомляет пользователя, когда его делают администратором, и не важно, человек это или бот. И у этого уведомления есть актор, тот, кто совершил действие. С максимальной вероятностью это и есть пользователь бота!

Таким образом, процесс привязки канала к пользователю стал автоматическим. Делаешь бота админом - все, чат в твоем списке)

Конечно, у системы есть изъян - если бота добавить в канал, не запуская, то сообщение не придет. По правилам телеграмма, бот не может сам писать пользователю, который его не запускал. Но и ничего страшного тоже не произойдет. Откатиться легко - просто разжаловать бота)

Внутренний порыв достиг желаемого - https://t.me/blue_btn_bot готов, без ограничений и оплат. Пользуйтесь на здоровье!