向电报机器人 inline_keyboard 添加回调以计算按钮点击次数

问题描述

我正在 NodeJS 中制作一个电报机器人。这是我遇到问题的代码片段:

    let counter = 0
    
    bot.onText(/\flexBox (.+)/i,async (msg,match) => {
    console.log(msg)
    console.log(match)
    const chatId = msg.chat.id;
    bot.sendMessage(msg.from.id,'Original Text',{
        reply_markup: {
            inline_keyboard: [
                [
                    {
                        text: `sample text`,callback_data: 'callbackData',url: `https://example.com`,}
                ]
            ]
        }
    });
    bot.on('callback_query',function onCallbackQuery(callbackQuery) {
      // increment counter when everytime the button is pressed
      counter = counter + 1
      console.log(counter)
    });

所以基本上我想要实现的是,每当用户单击按钮时,我想增加计数器,以便我可以跟踪/计数按钮的总点击次数。 如果我在 url 中使用字段 inline_keyboard,则根本不会触发回调函数。如果我删除 url 字段,则会触发回调。

有人可以帮我实现这个功能吗?

解决方法

The API Documnetation 说明 datagame_short_name 字段中的一个将出现在 callback_query 更新中。这意味着当且仅当按钮具有为其定义的 data 字段或 callback_game 时,机器人才会收到通知。由于您的按钮没有它们,按下按钮不会通知机器人。

,

请去掉标签py-telegram-bot-api,py是python的。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...