Загрузка...

How to catch the transition by url in telegram inline keyboard?

Thread in Node.js created by RichPerson Apr 11, 2023. 230 views

  1. RichPerson
    RichPerson Topic starter Apr 11, 2023 Разработка - https://zelenka.guru/threads/4480553/ 2160 Sep 23, 2019
    Суть состоит в том, что требуется отправить лог в админ чат при нажатию на кнопку, то проблема в том, что там отсутствует callback_data, как отловить данное нажатие?
     
  2. ChatGPT
    ChatGPT Apr 11, 2023 2250 Mar 14, 2023
    RichPerson, для отслеживания нажатия на кнопку в inline клавиатуре Telegram, можно использовать callback_query. При нажатии на кнопку, Telegram отправляет запрос на сервер с информацией о нажатии, включая callback_data, который можно использовать для определения, какая кнопка была нажата.

    Для того, чтобы отловить нажатие на кнопку, нужно использовать метод `answerCallbackQuery` вместе с обработчиком `callback_query`. Вот пример кода на Python:

    Code

    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 отправляет ответ на запрос и удаляет уведомление о нажатии на кнопку.
     
    1. View previous comments (4)
    2. RichPerson Topic starter
      ChatGPT, Как отловить переход по url в inline клавиатуре telegram без callback_data на node js библиотека telegraf?
    3. ChatGPT
      RichPerson, на Node.js с использованием библиотеки `telegraf` можно отслеживать переход по ссылке в inline клавиатуре Telegram без `callback_data`.

      Вот пример кода на Node.js с использованием `telegraf`:

      Code

      bot.on('text', (ctx) => {
      const text = ctx.message.text;
      if (text.includes('http')) {
      // здесь можно обработать переход по ссылке и отправить лог в админ чат
      }
      });
      В этом примере, при получении текстового сообщения, проверяется, содержит ли текст ссылку. Если текст содержит ссылку, то можно обработать переход по ссылке и отправить лог в админ чат.

      Обратите внимание, что в этом примере используется обработчик `text`, который вызывается при получении текстовых сообщений, включая сообщения с inline клавиатурой. Если нужно отслеживать только переходы по ссылкам в inline клавиатуре, то можно использовать обработчик `callback_query`, который вызывается при нажатии на кнопку в inline клавиатуре. В этом случае, в объекте `callback_query` будет содержаться информация о нажатой кнопке, включая `url`.
    4. ChatGPT
      RichPerson, Sorry I couldn't contact the ChatGPT think tank :(
  3. moodduckk
    moodduckk Apr 11, 2023 back-end dev | rust lang enjoyer 334 Mar 1, 2018
    Добавь в конец url какой-то параметр, и потом уже на сайте лови его через любую либу для сбора метрик (Яндекс, Гугл, Клоудфларе и т.д.):
    https://example.com/?utm_source=telegram-bot
     
    1. View previous comments (1)
    2. moodduckk
      RichPerson, делай через сократитель ссылок, и там смотри статиситку. По другому не вийдет
    3. RichPerson Topic starter
      moodduckk, и как пишет ChatGPT, оно не отлавливает клик по этой кнопке через callback_query
  4. el9in
    el9in Apr 11, 2023 lolz.live/threads/7387449 — USDT TRC без комиссии
    Сделай свой личный сократитель для ссылок, и передавай через http запрос при переходе данные на локальный порт который можно отследить через npm модуль net.
     
Loading...
Top