如何在外部事件中发送消息-Telegram Bot

时间:2020-04-30 21:55:29

标签: node.js mongodb telegram telegram-bot telegraf

我正在开发一个基于Telegraf的Telegram机器人,试图执行基于cron的脚本。我还使用MongoDB存储用户数据。

const CronJob = require('cron').CronJob;

const job = new CronJob('*/5 * * * * *', async function() {
    const user = await db.User.findOne({chat_id: ctx.chat.id});
    await bot.telegram.sendMessage(user.chat_id, 'Hello World');
})

bot.command('launch', async (ctx) => {
  job.start()
})

bot.command('stop', async (ctx) => {
  job.stop();
})

当用户与漫游器进行交互时,以这种方式从数据库中获取用户可以很好地处理内部事件,但不适用于诸如通知之类的外部事件,在这种情况下ctx会丢失。

请建议如何使用chat_id从数据库检索ctx,或者建议不使用ctx的另一种解决方法。

0 个答案:

没有答案