自定义键盘 • Ruby 中的电报机器人

Custom keyboard • telegram bot in Ruby

你好,我的电报机器人有一些问题,它是在 ruby 中使用“telegrammer”客户端开发的。

1)

  when '/lottery'
    question = 'choose a number:'
    answers =
      Telegram::Bot::Types::ReplyKeyboardMarkup.new(
      keyboard: [
        ["1", "2", "3"],
        ["4", "5", "6"],
        ["7", "8", "9"],
        [" ", "0", " "]
      ],

      one_time_keyboard: true
      )

    bot.api.sendMessage(chat_id: message.chat.id, text: question, reply_markup: answers)

我如何与用户的回答互动?喜欢

if answers == "1"
    bot.api.sendMessage(chat_id: message.chat.id, text: "You have selected 1", reply_markup: answers)
end

2) 我如何读取像

这样的命令

/*** @user1

然后机器人会说

@user1 the @user tell you ***

非常感谢你...

1.
当用户在键盘上单击某些内容时,不会发送任何特殊命令。如果用户在键盘上单击“1”只是向您的机器人发送一条带有“1”的消息(假设机器人收到该消息),这并不重要。所以你只会收到像

这样的标准数据
"message" : {
    "text" : "1"
    #...
}

所以你可能会有一个代码与此有关

#If message text equals '1'
when '1'
    #Do something

2。
我不知道 'telegrammer' 客户端是如何工作的,但它可能是 最好先检查消息文本是否与某个特定的匹配 正则表达式。如果文本确实匹配,那么你只需要拆分 消息文本以获取您想要的部分,以便您可以建立回复。