Всем привет!
Увидел кнопку проверки подписки в одном канале. И захотелось подобное реализовать. Но не понимаю как?!
Проверить подписку знаю как, а вот как делается редирект на бота? Или может я не так себе представляю работу этой всей связки.
Вот пример поста, там внизу есть кнопка получить файл, но если не подписан на канал, то не даёт. Но если подписаться и ещё раз нажать, то перекинет в бота. Как такое можно сделать? 🤪 Вот пост для примера
https://t.me/sales_smb/289
Откройте по ссылке или QR бот @iMakeBot, нажмите кнопку Старт/Start.
Следуйте инструкциям бота.
Прикольно, надо потестить. Мысль есть как это сделано, но надо проверить.
Я пробовал переслать это сообщение боту своему или каналу, чтоб увидеть что за кнопка. Но, приходит без кнопки.
Идея интересная. Но не понял как реализовано. Думал через switch кнопки, но потестироал и ничего не вышло.
Это обычная инлайн кнопка, нажатие по ней обрабатывает какой то код, который при проверке в случае если человек не подписан выводит алерт, а если подписан то скорее всего делает редирект на бота возможно с параметром для старта
А как это технично выглядит? Не пойму. Хоть бы маленький намёк какой-нибудь
Похоже на эту реализацию? https://github.com/losdan77/Telegram-bot_for_check_subscribe
P/S. Нет, это другое. 🤔🤔🤔🤔
Происходит словно редирект. Только как он реализован? 🤪🤪🤪
Все проще)))
У метода answerCallbackQuery есть для этого спец параметр url в него можно как раз указать ссылку на своего бота и даже с параметром для старта
Получается, сначала проверяем подписан или нет.
Если нет - то алерт
Если да - то уже ссылку даём?
Три часа эксперименты делаю, мозг не соображает уже. Буду сейчас пробовать
Огромное спасибо за подсказку!
Сегодня пробовал вызов AnswerCallbackQuery где пытался передать url, то всегда приходит ошибка 400 URL_INVALID
Без ссылки работает хорошо.
Как правильно ссылку передавать в Answercallbackquery?
В каком формате передаете?
Я уже по-разному перепробовал.
https://t.me/usernamebot
И так пробовал
https://t.me/username bot?start=123
И без https
И с tg://
Ну никак, всегда ошибка инвалид и всё 🤪
Ну вроде норм.
А если через браузер по этим ссылка попробовать перейти будет результат?
Ну да, работает ссылка на тестовый бот
https://t.me/samtimebot
Он любые ссылки не принимает.
Попробуйте без протокола как у них в примере: t.me/your_bot?start=XXXX
Пробовал без протокола. Всяко, никак. Вот сам не пойму что надо. Уже пробовал через rawurlencode() ссылку прогнать. И тоже никак.
Никак не получается запустить.
Что только не пробовал. В чатах спросил, сказали не работает ссылки.
Тогда как работает тут https://t.me/sales_smb/289
Уже не первый день пытаюсь решить и не понимаю, почему все так 🤪🤪🤪 и в гугле ничего не находится по этой причине
Есть прогресс )))
подставил ссылку на бота - самого себя - сработало
Точно, на себя работает. Получается другие ссылки нельзя 😭
А как тогда реализовать вместо ссылки на бота скачивание файла?
Вот тутhttps://t.me/sales_smb/289 реализовано так, не подписан, показывает алерт.
Если подписан, и ещё раз нажать то файл качается 🤪🤪🤪
Все просто))) переадресуете на бота с параметром например hash на файл в бд - далее обрабатываете старт с параметром, направляете sendDocument пользователю в бот
Точно, проверил из примера который показал. Он в бота уводит. Эхх, голову себе сломал. Как выдать прямо в канале. А тут вот как оказалось.
Спасибо огромное за помощь. Не додумался поставить ссылку на самого себя. Пробовал другие разные. Но только не себя.
Ухх. Спасибо 👍👍👍👍🔥🔥🔥🔥
Голова кипит ещё 🙄🤪
В общем и целом ситуация такая:
В группе присоединен бот, он постит сообщения с инлайн-кнопкой при нажатии на которую идет проверка и в случаи успеха идет переадресация на этого бота со значением в параметре старт
то есть он переадресует на самого себя
Остальные ссылки он метит как URL_INVALID