将可点击的按钮添加到电报机器人
Add clickable buttons to telegram-bot
我正在使用 node.js 电报机器人开发一个简单的电报机器人。
https://github.com/yagop/node-telegram-bot-api
现在我希望用户停止输入消息(带字母),只需按下几个按钮之一。当他点击按钮时,他的电报客户端必须向我的机器人发送另一条消息(类似于 "clicked yes" 或 "clicked no")。
我发现它可以用
var options = {
reply_markup: JSON.stringify({
inline_keyboard: [
[{ text: 'Some button text 1', callback_data: '1' }],
[{ text: 'Some button text 2', callback_data: '2' }],
[{ text: 'Some button text 3', callback_data: '3' }]
]
})
};
bot.sendMessage(msg.chat.id, "answer.", option);
所以用户收到了 3 种消息,当他点击它们时,他没有给我回任何东西。
我需要另一种类型的按钮(将在客户端应用程序的底部)。
您需要收听 callback_query
.. 如概述:
bot.on('callback_query', function onCallbackQuery(callbackQuery) {
const action = callbackQuery.data;
const msg = callbackQuery.message;
const opts = {
chat_id: msg.chat.id,
message_id: msg.message_id,
};
let text;
if (action === '1') {
text = 'You hit button 1';
}
bot.editMessageText(text, opts);
});
可以在图书馆中找到更多信息。 : https://github.com/yagop/node-telegram-bot-api/blob/0174b875ff69f6750fc80a049315c9a0d7a5e471/examples/polling.js#L78
进一步阅读表明:https://core.telegram.org/bots/api#callbackquery
TelegramBot emits callback_query when receives a Callback Query
这与此处的文档相关:https://core.telegram.org/bots/api#callbackquery
如果按钮附加到通过机器人发送的消息(以内联模式),字段 inline_message_id
将出现。
恰好会出现 data
或 game_short_name
字段之一。
您使用的是内联键盘,您可以尝试回复键盘标记,如您所说,它出现在电报屏幕底部。
我正在使用 node.js 电报机器人开发一个简单的电报机器人。 https://github.com/yagop/node-telegram-bot-api 现在我希望用户停止输入消息(带字母),只需按下几个按钮之一。当他点击按钮时,他的电报客户端必须向我的机器人发送另一条消息(类似于 "clicked yes" 或 "clicked no")。 我发现它可以用
var options = {
reply_markup: JSON.stringify({
inline_keyboard: [
[{ text: 'Some button text 1', callback_data: '1' }],
[{ text: 'Some button text 2', callback_data: '2' }],
[{ text: 'Some button text 3', callback_data: '3' }]
]
})
};
bot.sendMessage(msg.chat.id, "answer.", option);
所以用户收到了 3 种消息,当他点击它们时,他没有给我回任何东西。 我需要另一种类型的按钮(将在客户端应用程序的底部)。
您需要收听 callback_query
.. 如概述:
bot.on('callback_query', function onCallbackQuery(callbackQuery) {
const action = callbackQuery.data;
const msg = callbackQuery.message;
const opts = {
chat_id: msg.chat.id,
message_id: msg.message_id,
};
let text;
if (action === '1') {
text = 'You hit button 1';
}
bot.editMessageText(text, opts);
});
可以在图书馆中找到更多信息。 : https://github.com/yagop/node-telegram-bot-api/blob/0174b875ff69f6750fc80a049315c9a0d7a5e471/examples/polling.js#L78
进一步阅读表明:https://core.telegram.org/bots/api#callbackquery
TelegramBot emits callback_query when receives a Callback Query
这与此处的文档相关:https://core.telegram.org/bots/api#callbackquery
如果按钮附加到通过机器人发送的消息(以内联模式),字段 inline_message_id
将出现。
恰好会出现 data
或 game_short_name
字段之一。
您使用的是内联键盘,您可以尝试回复键盘标记,如您所说,它出现在电报屏幕底部。