电报Bot API。如何仅在开始和结束消息之间收集图像?

时间:2018-09-18 10:28:13

标签: node.js telegram-bot

我正在编写Telegram机器人(nodejs),该机器人将收集在“开始”和“结束”消息之间发送给它的所有图像。我学会了如何启动bot.onText(/\/start/,但是如何对用户发出的“结束”消息作出反应以在此之后开始反应?

1 个答案:

答案 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配合使用,请查看示例文件夹以开始了解其工作原理。