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.updatesubtypes 的 good
替代方法是:
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();
});
新版本的 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.updatesubtypes 的 good
替代方法是:
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();
});