EugeneVKruglov
Если бот у вас является админом в этих группах, то алгоритм следующий:
1. Создаете ссылку для вступления в эту группу через метод createChatInviteLink
обязательно укажите параметр "creates_join_request": true, чтобы вам пришла отбивка о том, что кто-то хочет вступить в группу
2. Эту ссылку можете отправить в виде inline кнопки с url.
3. Пользователь переходит по ссылке, ему предлагается подать заявку в группу.
4. После того, как он нажмет на "Подать заявку", отлавливаем это событие, на этом этапе нам доступна ссылка по которой пользователь перешел в группу, делаем с ней что хотим, сохраняем куда надо, делаем подсчеты и пр.
5. Подтверждаем (или нет) его вступление
Даниил Рыжов, автор просто не совсем правильно выразил свою мысль. Он хочет отправить пользователю обычную inline кнопку с callback_data под капотом, но чтобы при нажатии пользователя перенаправляло на другую группу/канал.
Если в Inline кнопке вместо callback_data прописать url, то переход осуществится, только вот сервер не получит информации о том, что была нажата кнопка.
EugeneVKruglov Так сделать не получится. Может можно что-то сделать с реферальными ссылками?
nottodaygc, мало просто взять и скопировать код. Нужно понять как он работает, нет ли в нем ошибок. Почитать что выводится в консоли (а там прям очень явно указано в чем дело). В данный момент ошибка ну прям очень банальна (допустил ее не специально, но с кем не бывает), так что подсказывать тут не буду.
Почему ожидаемо? Какую ошибку получаете?
Вообще можно использовать message.answer(), тогда сообщение направится в тот же чат, откуда прилетело событие, которое вы обрабатываете
Конкретно этот код (токен прописал напрямую) работает.
У вас не работает только callback_handler? message_handler отрабатывает нормально и кнопка появляется?
Ну а как пробовали? У сообщения есть признак location.
По идее можно смотреть в сторону content_types=["location"] или F.location
В хендлере message_handler
У вас только одна эта кнопка в боте? больше никакие не объявляли? Возможно в полном коде вашего бота где-то лежит объявление кнопки без условия lambda call: ..., которое перехватывает работу при нажатии.
Вот ответ, который я успел настрочить до того, как вы удалили прошлый вопрос про файл БД и пр
В документации скорее речь идет о unix системах (linux, MacOS). Windows устроена несколько иначе.
В вашем случае лучше изучить работу с переменными окружения и хранить в них путь к файлу БД. В локальной среде можете создать файл .env (не забыть добавить его в .gitignore), указать в нем путь к БД и заставить приложение смотреть туда, если нужной переменной окружения не нашлось. А в проекте на хостинге amvera в разделе "Переменные" создать нужную переменную указав значение /data/<имя файла БД>
Изучите соотвествующие библиотеки для работы с переменными окружения и .env файлами для вашего языка программирования.