你好,我有一些问题,我的电报机器人,开发在红宝石与'电报机‘客户端。
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 1
然后机器人会说
@user 1@user告诉你*
谢谢你提前..。
发布于 2016-04-07 21:43:38
1.
当用户单击键盘上的某个内容时,没有发送特殊命令。如果用户单击键盘上的"1“就向bot发送带有"1”的消息并不重要(假设bot接收到该消息)。因此,您将只收到标准数据,如
"message" : {
"text" : "1"
#...
}
所以你可能会有一个代码来看这个
#If message text equals '1'
when '1'
#Do something
我不知道“电报机”客户端是如何工作的,但如果您第一次检查消息文本是否与某个正则表达式匹配,这可能是最好的。如果文本是匹配的,那么您只需要拆分消息文本就可以得到您想要的部分,这样您就可以构建您的回复。
https://stackoverflow.com/questions/36481583
复制相似问题