ctx.updateSubTypes 电报 4 的替代方案

Alternative of ctx.updateSubTypes Telgraf 4

新版本的 telgraf 删除了该端点 https://github.com/telegraf/telegraf/releases/tag/v4.0.0#:~:text=ctx.updateSubTypes

我们如何使用新 API

检测消息类型

这是旧的 ctx 重播

这是 ctx.updatesubtypes 的另一种用法,也就是在 telegraf 3.

中获取消息类型
bot.use((ctx, next) => {
    console.log(`Message Type is: ${getMessageType(ctx.message)}`); 
    // Message Type is: STICKER or Message Type is: TEXT
});
const getMessageType = (message) => {
    var keys = Object.keys(message);
    var messageType = keys.pop();
    console.log(messageType);
    return messageType.toUpperCase();
};

来源是:

在 4.6.0 中使用 ctx.updatesubtypesgood 替代方法是:

bot.use((ctx, next) => {
  let message_type = "";
  let keys = Object.keys(ctx.message);
  
  if (keys.includes("text")) {
    message_type = "text";
  } else if (keys.includes("sticker")) {
    message_type = "sticker";
  } else if (keys.includes("photo")) {
    message_type = "photo";
  }
  console.log(`Message Type is: ${message_type}`);
  next();
});