📅  最后修改于: 2023-12-03 14:44:37.751000             🧑  作者: Mango
Node.js Bot.on() 方法是针对Node.js框架中的Bot对象定义的事件侦听器。 Bot.on()方法通过向Bot对象添加事件侦听器来实现对事件的注册和响应。
bot.on(event, listener);
event
:字符串,表示要侦听的事件类型。listener
:一个回调函数,该函数在事件被触发时执行。// 导入机器人框架
const Bot = require('node-telegram-bot-api');
// 机器人令牌
const token = 'YOUR_TELEGRAM_BOT_TOKEN';
// 创建新Bot实例
const bot = new Bot(token, { polling: true });
// 当机器人接收到“/hello”命令时打印一条消息
bot.on('message', (msg) => {
if (msg.text.toString().toLowerCase().indexOf("/hello") === 0) {
bot.sendMessage(msg.chat.id, "Hello World!");
}
});
上述代码创建一个新的Bot实例,注册事件侦听器来监听用户发送的消息。如果用户发送的消息是以“/hello”开头的,则Bot将发送一条“Hello World!”撤回给用户。
Node.js Bot.on() 方法支持为Bot对象注册的多种事件类型,包括:
message
:用户发送的任何类型的消息。edited_message
:用户编辑过的消息。channel_post
:频道发的消息。edited_channel_post
:编辑过的频道消息。inline_query
:用户在inline模式下的查询。chosen_inline_result
:用户在inline模式下选择的结果。callback_query
:用户通过点击button、inlinebutton或者keyboard触发的回调查询。shipping_query
:用户询问有关快递或运输选项时的查询。pre_checkout_query
:用户购买时的查询。事件侦听器是一个回调函数,当指定的事件发生时执行。当使用 Bot.on() 方法注册事件侦听器时,第二个参数必须是一个回调函数,该函数将接受一个或多个参数,这些参数取决于事件类型。
下面是几个事件侦听器的示例:
bot.on('message', (msg) => {
console.log(msg);
});
上述代码创建了一个回调函数,它将在机器人收到用户消息时执行。这个回调函数接收一个参数 msg
,它是一个Message对象,包含有用户与机器人的所有交互信息。
bot.on('callback_query', (query) => {
console.log(query);
bot.sendMessage(query.message.chat.id, `You pressed ${query.data}`);
});
上述代码创建了一个回调函数,它将在用户点击button、inlinebutton或者keyboard触发的回调查询时执行。该函数接收一个参数 query
,它是一个CallbackQuery对象,提供关于查询的详细信息,包括目标message的ID和被点击的button的数据。
Node.js Bot.on() 方法是Node.js框架中Bot对象的事件侦听器。通过注册事件侦听器,可以对尽可能多的事件类型进行响应。