我正在编写Telegram机器人(nodejs),该机器人将收集在“开始”和“结束”消息之间发送给它的所有图像。我学会了如何启动bot.onText(/\/start/
,但是如何对用户发出的“结束”消息作出反应以在此之后开始反应?
答案 0 :(得分:1)
您需要维护要向您发送/start
和/end
命令的每个用户的状态。您可以将状态保存在键/值存储区中(例如{ userid: xxx, end: false }
。然后,每次发送图片时,您都可以检查数据库存储区。代码示例如下:
bot.onText(/\/start/, msg => {
//saveToDb({chat_id: msg.chat.id, completed: false});
});
bot.onText(/\/end/, msg => {
//saveToDb({chat_id: msg.chat.id, completed: true});
});
bot.on("message", msg => {
// most of this code is just for logical purposes to explain the concept
if (typeof msg.image === "object") {
//const completed = checkDb(msg.chat.id);
if (completed !== true) {
// work with the image
}
}
});
或者,您可以研究mau,其目的是解决此问题。它可以与node-telegram-bot-api
配合使用,请查看示例文件夹以开始了解其工作原理。