📜  Node.js Bot.on() 方法(1)

📅  最后修改于: 2023-12-03 14:44:37.751000             🧑  作者: Mango

Node.js Bot.on() 方法介绍

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() 方法注册事件侦听器时,第二个参数必须是一个回调函数,该函数将接受一个或多个参数,这些参数取决于事件类型。

下面是几个事件侦听器的示例:

message 事件侦听器
bot.on('message', (msg) => {
  console.log(msg);
});

上述代码创建了一个回调函数,它将在机器人收到用户消息时执行。这个回调函数接收一个参数 msg,它是一个Message对象,包含有用户与机器人的所有交互信息。

callback_query 事件侦听器
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对象的事件侦听器。通过注册事件侦听器,可以对尽可能多的事件类型进行响应。

参考资料

node-telegram-bot-api 中文文档