Как отправлять сообщения во внешних событиях - Telegram Bot - PullRequest
0 голосов
/ 01 мая 2020

Я работаю над ботом Telegram на основе Telegraf, пытаясь выполнить скрипт на основе 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.

...