首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Ruby中的自定义键盘·电报机器人

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

Stack Overflow用户
提问于 2016-04-07 16:05:24
回答 1查看 1.1K关注 0票数 0

你好,我有一些问题,我的电报机器人,开发在红宝石与'电报机‘客户端。

1)

代码语言:javascript
运行
复制
  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)

如何与用户的答案进行交互?喜欢

代码语言:javascript
运行
复制
if answers == "1"
    bot.api.sendMessage(chat_id: message.chat.id, text: "You have selected 1", reply_markup: answers)
end

2)我如何读到这样的命令

/*** @user1 1

然后机器人会说

@user 1@user告诉你*

谢谢你提前..。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-07 21:43:38

1.

当用户单击键盘上的某个内容时,没有发送特殊命令。如果用户单击键盘上的"1“就向bot发送带有"1”的消息并不重要(假设bot接收到该消息)。因此,您将只收到标准数据,如

代码语言:javascript
运行
复制
"message" : {
    "text" : "1"
    #...
}

所以你可能会有一个代码来看这个

代码语言:javascript
运行
复制
#If message text equals '1'
when '1'
    #Do something

我不知道“电报机”客户端是如何工作的,但如果您第一次检查消息文本是否与某个正则表达式匹配,这可能是最好的。如果文本是匹配的,那么您只需要拆分消息文本就可以得到您想要的部分,这样您就可以构建您的回复。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36481583

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档