Обрабатывать обратный вызов с встроенной клавиатуры (бот Telegram) с JavaScript - PullRequest
0 голосов
/ 14 октября 2018

Я создаю этого бота-телеграммы как приложение Google (в электронной таблице), поэтому я не могу использовать какой-либо пакет для таких узлов, как Telegraph или Telebot.

Что мне нужно сделать, это то, что для каждого встроенногоПри нажатии кнопки бот выполнит определенное действие.Это код, который отображает клавиатуру под сообщением

bot.replyToSender("Quello inserito non è un codice utente valido. Il codice utente deve essere un numero!",JSON.stringify({
        "inline_keyboard": [
          [{ "text": "BUTTON_1", url: "SOME_RANDOM_URL_HERE"}], //This button does work, it sends me to the specific url
          [{ "text": "BUTTON_2", "callback_data" :"B"}]
        ]
      }));

Проблема начинается здесь, когда я хочу что-то сделать с BUTTON_2 (например, изменить сообщение, которое сгенерировало этот обратный вызов, или просто ответить пользователю).

Я просто не могу ничего получить со страницы API Telegram ... Можете мне помочь?

1 Ответ

0 голосов
/ 02 января 2019

Я создал подобного бота , который работает с электронной таблицей Google и обновляет электронную таблицу после выполнения действия, вы можете проверить его.Я не использовал приложение Google в электронной таблице.По моему мнению, такой подход был бы намного сложнее, потому что вы не можете использовать большинство доступных библиотек, которые выполняют большую часть тяжелой работы за вас.

Чтобы ответить на вопрос, вам нужно будет использовать метод answercallbackquery доступно в документах .Я не знаю, как именно это выглядело бы при использовании приложения Google, но оно должно выглядеть примерно так:

if (query.data === "B") {  // query is an object from the response you get when the user clicks the inline button
  bot.answercallbackquery(query.id, {
     text: `You successfully clicked the button`
  });
}

Возможно, это не совсем та же реализация для вас, но поля одинаковы для answerInlineQuery.

Вы можете проверить, как я это реализую здесь

Это может немного сбить с толку, потому что я использовал telegram-node-bot , который использует MVCпоэтому встроенный запрос нужно было установить в моем файле index.js , прежде чем я смог использовать метод answercallbackquery.

Однако он работает отлично.Не стесняйтесь задавать дополнительные вопросы.

Приветствия)

...