R: Прочитайте ответы на клавиатуру от Telegram Bot - PullRequest
0 голосов
/ 27 ноября 2018

При использовании пакета R's telegram.bot я не могу понять, как прочитать ответ, который пользователь дает с клавиатуры.Вот это минимальный пример кода:

library(telegram.bot)

updater <- Updater(token = Sys.getenv('TOKEN'))
dispatcher <- updater$dispatcher

start_keyboard <- ReplyKeyboardMarkup(
  keyboard = list(
    list(KeyboardButton('Choice_1')),
    list(KeyboardButton('Choice_2'))
  ),
  one_time_keyboard = TRUE
)

start <- function(bot, update) {
  bot$sendMessage(chat_id = update$message$chat_id,
                  text = "Hello!",
                  reply_markup = start_keyboard
  )
}

dispatcher$add_handler(CommandHandler('start', start))

updater$start_polling()

1 Ответ

0 голосов
/ 27 ноября 2018

Ответы ReplyKeyboardMarkup отправляются пользователем в виде простого текста, поэтому вы можете создать обработчик текста для этого случая:

start_handler <- function(bot, update){
  text <- "foo"
  if (update$message$text == "Choice_1"){
    text <- "Response 1"
  }else if (update$message$text == "Choice_2"){
    text <- "Response 2"
  }
  bot$sendMessage(chat_id = update$message$chat_id, text = text)
}

dispatcher$add_handler(MessageHandler(start_handler, MessageFilters$text))

updater$start_polling()

Примечание: в случае использованияInlineKeyboardMarkup, ответ больше не будет текстовым, и вы должны обработать его через answerCallbackQuery, вы можете сделать это с определенным CallbackQueryHandler.

...