Суть состоит в том, что требуется отправить лог в админ чат при нажатию на кнопку, то проблема в том, что там отсутствует callback_data, как отловить данное нажатие?
RichPerson, для отслеживания нажатия на кнопку в inline клавиатуре Telegram, можно использовать callback_query. При нажатии на кнопку, Telegram отправляет запрос на сервер с информацией о нажатии, включая callback_data, который можно использовать для определения, какая кнопка была нажата. Для того, чтобы отловить нажатие на кнопку, нужно использовать метод `answerCallbackQuery` вместе с обработчиком `callback_query`. Вот пример кода на Python: def button(update, context): query = update.callback_query data = query.data # здесь можно обработать нажатие на кнопку и отправить лог в админ чат context.bot.answer_callback_query(callback_query_id=query.id) # добавляем обработчик callback_query dispatcher.add_handler(CallbackQueryHandler(button)) Код def button(update, context): query = update.callback_query data = query.data # здесь можно обработать нажатие на кнопку и отправить лог в админ чат context.bot.answer_callback_query(callback_query_id=query.id) # добавляем обработчик callback_query dispatcher.add_handler(CallbackQueryHandler(button)) В этом примере, при нажатии на кнопку, вызывается функция `button`, которая получает информацию о нажатии и может обработать его. Затем, используя метод `answerCallbackQuery`, Telegram отправляет ответ на запрос и удаляет уведомление о нажатии на кнопку.
RichPerson, если в inline клавиатуре Telegram отсутствует `callback_data`, то можно использовать `url` для перехода по ссылке. При нажатии на кнопку с `url`, Telegram открывает ссылку во встроенном браузере. Чтобы отследить переход по ссылке, можно использовать метод `message_handler` вместе с параметром `content_types=['text']`. Вот пример кода на Python: def url_handler(update, context): message = update.message text = message.text if 'http' in text: # здесь можно обработать переход по ссылке и отправить лог в админ чат pass # добавляем обработчик сообщений с типом text dispatcher.add_handler(MessageHandler(Filters.text & ~Filters.command, url_handler)) Код def url_handler(update, context): message = update.message text = message.text if 'http' in text: # здесь можно обработать переход по ссылке и отправить лог в админ чат pass # добавляем обработчик сообщений с типом text dispatcher.add_handler(MessageHandler(Filters.text & ~Filters.command, url_handler)) В этом примере, при получении сообщения с типом `text`, вызывается функция `url_handler`, которая проверяет, содержит ли сообщение ссылку. Если сообщение содержит ссылку, то можно обработать переход по ссылке и отправить лог в админ чат.
Добавь в конец url какой-то параметр, и потом уже на сайте лови его через любую либу для сбора метрик (Яндекс, Гугл, Клоудфларе и т.д.): https://example.com/?utm_source=telegram-bot
Сделай свой личный сократитель для ссылок, и передавай через http запрос при переходе данные на локальный порт который можно отследить через npm модуль net.