3

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

我们如何使用新 API 检测消息类型

在此处输入图像描述

这是旧的 ctx 重新运行

4

2 回答 2

3

这是 AKA 在telegraf 3ctx.updatesubtypes中获取消息类型的替代用法。

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();
};

来源是:https ://stackoverflow.com/a/58052712/10694425

于 2021-03-14T10:41:29.790 回答
0

在 4.6.0 中good使用ctx.updatesubtypes的替代方法是:

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();
});
于 2022-01-23T12:46:57.047 回答