Работает только для приватных чатов, потому что при переходе в публичный по ссылке ТГ не отправляет боту ответ. Тестировал на обычном переходе из браузера, на ссылке в сообщении - не на кнопке.
В ТГ есть метод approvechatjoinrequest
, который позволяет одобрить ботом вход в канал по ссылке, если такая ссылка была сделана с требованием одобрения входа.
К сожалению, у меня не работал этот метод post-запросом на хуках. Уже отчаявшись, сделал get-запрос и юзера бот одобрил.
К чему я про этот метод. К тому, что есть createChatInviteLink
, который создаёт ссылку и при использовании ее для приватного группового чата/канала возвращается [chat_join_request]
, в котором и данные пользователя и ссылка.
То есть пользователь переходит по ссылке, бот получает инфу, одобряет пользователя.
Другого варианта не существует на данный момент. Можно временно, пока идёт какая-то акция, публичную группу сделать приватной и считать таким образом рефералов, переходы, время фиксировать и тд.