如何在Telegram中捕获键盘响应

时间:2018-06-01 19:35:08

标签: node.js telegram-bot

bot.onText(/Pizza/, (msg) => {
    bot.sendMessage(msg.chat.id, "OK, " + msg.from.first_name + ". What kind of pizza?", {
        "reply_markup": {
            "keyboard": [["Peperoni", "4 cheese", "Vegetarian", "Tomato"]],
            "resize_keyboard": true
        }
    });
});

bot.onText(/Peperoni/, (msg) => {
    console.log(msg.text);
    if (msg.text === "Peperoni") {
        console.log("Entered IF");
        bot.sendMessage(msg.chat.id, "Peperoni is there " + msg.from.first_name + ".Choose the quantity", {
            "reply_markup": {
                "keyboard": [["1", "2", "3"]],
                "resize_keyboard": true
            }
        })
        console.log(msg.text);
    }
});

使用节点电报bot api,我的代码在上面。当用户按下Peperoni时,我可以捕捉到Peperoni,但是我如何捕获我后来要求的数量。试图在所有地方插入最后console.log,但这种情况从未发生过。请任何想法;)

2 个答案:

答案 0 :(得分:0)

为此,您需要将最后一个用户请求保存到数据库表或chat_id的文件中,然后获取数量。您可以随时从表格或chat_id

的文件中检索比萨饼类型

enter image description here

在上图中,您可以看到我保存每个发出请求的用户的chat_id。我也保存了request_type。在您的情况下,您可以request_value并将值保存为pepperoni。然后在下一个请求中获取披萨计数1并从request_value字段中获取相同chat_id

的前一个值

答案 1 :(得分:0)

所有向僵尸程序发出的消息都是一个对象
textvoicevideo和...)

例如用户选择:1

bot.on('message', (msg) => {
  console.log(msg.text);
});

控制台输出: // 1