Можно ли с помощью callback-кнопки воспроизвести поведение inline-кнопки типа URL?
Здравствуйте! Можно ли с помощью callback-кнопки осуществить переход по ссылке в другую группу / канал Телеграм или на другой URL? Т.е. заставить ее работать как inline-кнопку типа URL?
Нужно для того, чтобы учитывать ссылки, на которые переходит пользователь.
В Телеграм-API таких способов не нашёл.
На Хабре на похожие вопросы отвечают отрицательно.
Вы что-то путаете.
Есть два типа клавиатур
reply keyboards и inline keyboards Ссылка на документацию
Читаем документацию
Buttons available only in inline keyboards:
keyboardButtonUrl - Open the URL, showing a "Do you want to open this URL?" prompt (unless the URL is one of the internal URIs, in which case the URL should be opened right away)
Даниил Рыжов, я ничего не путаю. Возможно, не совсем точно выразился.
InlineKeyboardButton
This object represents one button of an inline keyboard. Exactly one of the optional fields must be used to specify type of the button.
Эти optional fields могут иметь тип URL, callback_data, web_app и т.д.
Но поведением скрипта после нажатия callback-кнопки можно управлять, а вот после нажатия url-кнопки можно только перейти по ссылке, и никаких возможностей вмешаться в этот процесс нет. Поэтому и возник этот вопрос.
Даниил Рыжов, автор просто не совсем правильно выразил свою мысль. Он хочет отправить пользователю обычную inline кнопку с callback_data под капотом, но чтобы при нажатии пользователя перенаправляло на другую группу/канал.
Если в Inline кнопке вместо callback_data прописать url, то переход осуществится, только вот сервер не получит информации о том, что была нажата кнопка.
EugeneVKruglov Так сделать не получится. Может можно что-то сделать с реферальными ссылками?
EugeneVKruglov
Если бот у вас является админом в этих группах, то алгоритм следующий:
1. Создаете ссылку для вступления в эту группу через метод createChatInviteLink
обязательно укажите параметр "creates_join_request": true, чтобы вам пришла отбивка о том, что кто-то хочет вступить в группу
2. Эту ссылку можете отправить в виде inline кнопки с url.
3. Пользователь переходит по ссылке, ему предлагается подать заявку в группу.
4. После того, как он нажмет на "Подать заявку", отлавливаем это событие, на этом этапе нам доступна ссылка по которой пользователь перешел в группу, делаем с ней что хотим, сохраняем куда надо, делаем подсчеты и пр.
5. Подтверждаем (или нет) его вступление
Михаил Кростелев, приветствую! Да, так пробовал, но проблема в том, что invite links работают только в приватных группах и каналах, и событие chat_join_request возникает только в этих случаях. Мне же хочется поймать момент перехода пользователя в открытую группу или хотя бы момент нажатия на кнопку со ссылкой, чтобы понять, что пользователь хочет перейти в эту группу или по этому адресу.