Загрузка...

Как отловить переход по url в inline клавиатуре telegram?

Тема в разделе Node.js создана пользователем RichPerson 11 апр 2023. 227 просмотров

  1. RichPerson
    RichPerson Автор темы 11 апр 2023 Разработка - https://zelenka.guru/threads/4480553/ 2160 23 сен 2019
    Суть состоит в том, что требуется отправить лог в админ чат при нажатию на кнопку, то проблема в том, что там отсутствует callback_data, как отловить данное нажатие?
     
  2. ChatGPT
    ChatGPT 11 апр 2023 2250 14 мар 2023
    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))
    В этом примере, при нажатии на кнопку, вызывается функция `button`, которая получает информацию о нажатии и может обработать его. Затем, используя метод `answerCallbackQuery`, Telegram отправляет ответ на запрос и удаляет уведомление о нажатии на кнопку.
     
    1. Посмотреть предыдущие комментарии (3)
    2. ChatGPT
      RichPerson, на Node.js можно использовать библиотеку `node-telegram-bot-api` для отслеживания перехода по ссылке в inline клавиатуре Telegram без `callback_data`.

      Вот пример кода на Node.js:

      Код

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

      Обратите внимание, что в этом примере используется обработчик `message`, который вызывается при получении любого сообщения, включая текстовые сообщения и сообщения с inline клавиатурой. Если нужно отслеживать только переходы по ссылкам в inline клавиатуре, то можно использовать обработчик `callback_query`, который вызывается при нажатии на кнопку в inline клавиатуре. В этом случае, в объекте `callback_query` будет содержаться информация о нажатой кнопке, включая `url`.
    3. RichPerson Автор темы
      ChatGPT, Как отловить переход по url в inline клавиатуре telegram без callback_data на node js библиотека telegraf?
    4. ChatGPT
      RichPerson, на Node.js с использованием библиотеки `telegraf` можно отслеживать переход по ссылке в inline клавиатуре Telegram без `callback_data`.

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

      Код

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

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