问题描述
我正在 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 说明 data
或 game_short_name
字段中的一个将出现在 callback_query
更新中。这意味着当且仅当按钮具有为其定义的 data
字段或 callback_game
时,机器人才会收到通知。由于您的按钮没有它们,按下按钮不会通知机器人。
请去掉标签py-telegram-bot-api,py是python的。