← Вернуться к списку тем

Кнопка в канале под постом

Всем привет!

Увидел кнопку проверки подписки в одном канале. И захотелось подобное реализовать. Но не понимаю как?!

Проверить подписку знаю как, а вот как делается редирект на бота? Или может я не так себе представляю работу этой всей связки.

Вот пример поста, там внизу есть кнопка получить файл, но если не подписан на канал, то не даёт. Но если подписаться и ещё раз нажать, то перекинет в бота. Как такое можно сделать? 🤪 Вот пост для примера 

https://t.me/sales_smb/289 

Авторизуйтесь через Telegram, чтобы оставить комментарий.
Откройте по ссылке или QR бот @iMakeBot, нажмите кнопку Старт/Start.
Следуйте инструкциям бота.

  • iMakeBots [2 месяца назад]

    Прикольно, надо потестить. Мысль есть как это сделано, но надо проверить.

  • Денис 💡 Фрилансер [2 месяца назад → iMakeBots]

    Я пробовал переслать это сообщение боту своему или каналу, чтоб увидеть что за кнопка. Но, приходит без кнопки.

    Идея интересная. Но не понял как реализовано. Думал через switch кнопки, но потестироал и ничего не вышло. 

  • iMakeBots [2 месяца назад → Денис 💡 Фрилансер]

    Это обычная инлайн кнопка, нажатие по ней обрабатывает какой то код, который при проверке в случае если человек не подписан выводит алерт, а если подписан то скорее всего делает редирект на бота возможно с параметром для старта

  • Денис 💡 Фрилансер [2 месяца назад → iMakeBots]

    А как это технично выглядит? Не пойму. Хоть бы маленький намёк какой-нибудь 

  • Денис 💡 Фрилансер [2 месяца назад → iMakeBots]

    Похоже на эту реализацию? https://github.com/losdan77/Telegram-bot_for_check_subscribe

    P/S. Нет, это другое. 🤔🤔🤔🤔

  • Денис 💡 Фрилансер [2 месяца назад → iMakeBots]

    Происходит словно редирект. Только как он реализован? 🤪🤪🤪

  • iMakeBots [2 месяца назад → Денис 💡 Фрилансер]

    Все проще)))

    У метода answerCallbackQuery есть для этого спец параметр url в него можно как раз указать ссылку на своего бота и даже с параметром для старта

  • Денис 💡 Фрилансер [2 месяца назад → iMakeBots]

    Получается, сначала проверяем подписан или нет.

    Если нет - то алерт

    Если да - то уже ссылку даём?

    Три часа эксперименты делаю, мозг не соображает уже. Буду сейчас пробовать

    Огромное спасибо за подсказку! 

  • Денис 💡 Фрилансер [2 месяца назад → iMakeBots]

    Сегодня пробовал вызов AnswerCallbackQuery где пытался передать url, то всегда приходит ошибка 400 URL_INVALID

    Без ссылки работает хорошо.

    Как правильно ссылку передавать в Answercallbackquery? 

  • iMakeBots [2 месяца назад → Денис 💡 Фрилансер]

    В каком формате передаете?

  • Денис 💡 Фрилансер [2 месяца назад → iMakeBots]

    Я уже по-разному перепробовал.

    https://t.me/usernamebot

    И так пробовал

    https://t.me/username bot?start=123

    И без https

    И с tg://

    Ну никак, всегда ошибка инвалид и всё 🤪

  • iMakeBots [2 месяца назад → Денис 💡 Фрилансер]

    Ну вроде норм.


    А если через браузер по этим ссылка попробовать перейти будет результат?

  • Денис 💡 Фрилансер [2 месяца назад → iMakeBots]

    Ну да, работает ссылка на тестовый бот

    https://t.me/samtimebot

    Он любые ссылки не принимает. 

  • iMakeBots [2 месяца назад → Денис 💡 Фрилансер]

    Попробуйте без протокола как у них в примере: t.me/your_bot?start=XXXX

  • Денис 💡 Фрилансер [2 месяца назад → iMakeBots]

    Пробовал без протокола. Всяко, никак. Вот сам не пойму что надо. Уже пробовал через rawurlencode() ссылку прогнать. И тоже никак. 

  • Денис 💡 Фрилансер [2 месяца назад → iMakeBots]

    Никак не получается запустить.

    Что только не пробовал. В чатах спросил, сказали не работает ссылки.

    Тогда как работает тут https://t.me/sales_smb/289

    Уже не первый день пытаюсь решить и не понимаю, почему все так 🤪🤪🤪 и в гугле ничего не находится по этой причине 

  • iMakeBots [2 месяца назад → Денис 💡 Фрилансер]

    Есть прогресс )))

    подставил ссылку на бота - самого себя - сработало

  • Денис 💡 Фрилансер [2 месяца назад → iMakeBots]

    Точно, на себя работает. Получается другие ссылки нельзя 😭

    А как тогда реализовать вместо ссылки на бота скачивание файла?

    Вот тутhttps://t.me/sales_smb/289 реализовано так, не подписан, показывает алерт.

    Если подписан, и ещё раз нажать то файл качается 🤪🤪🤪

  • iMakeBots [2 месяца назад → Денис 💡 Фрилансер]

    Все просто))) переадресуете на бота с параметром например hash на файл в бд - далее обрабатываете старт с параметром, направляете sendDocument пользователю в бот

  • Денис 💡 Фрилансер [2 месяца назад → iMakeBots]

    Точно, проверил из примера который показал. Он в бота уводит. Эхх, голову себе сломал. Как выдать прямо в канале. А тут вот как оказалось.

    Спасибо огромное за помощь. Не додумался поставить ссылку на самого себя. Пробовал другие разные. Но только не себя.

    Ухх. Спасибо 👍👍👍👍🔥🔥🔥🔥

    Голова кипит ещё 🙄🤪

  • iMakeBots [2 месяца назад → Денис 💡 Фрилансер]

    В общем и целом ситуация такая:

    В группе присоединен бот, он постит сообщения с инлайн-кнопкой при нажатии на которую идет проверка и в случаи успеха идет переадресация на этого бота со значением в параметре старт

    то есть он переадресует на самого себя

    Остальные ссылки он метит как URL_INVALID