Бот Telegram - отправка сообщений пользователю каждый день - PullRequest
0 голосов
/ 20 апреля 2020

Я бы хотел создать бота Telegram на основе Telegraf. Я хочу, чтобы бот планировал и отправлял сообщения пользователям, запустив команду.

Например, я хочу, чтобы она работала как курс: выбрав курс, вы получаете уроки каждый день.

Я пытался использовать node-cron (см. Пример ниже), но он начинает посылать сообщения, инициируя бота.

const cron = require('node-cron');

const schedule = cron.schedule('*/5 * * * * *', async () => {
  bot.telegram.sendMessage(chatId, 'Hello World');
});

bot.command('/launch', ctx => {
  schedule.launch();
});

bot.command('/stop', ctx => {
  schedule.stop();
});

Пожалуйста, предложите способы реализации бота, как этот. Если вы знаете существующего бота с телеграфом, как этот, с исходным кодом, пожалуйста, дайте мне знать.

1 Ответ

0 голосов
/ 20 апреля 2020

Если бы это был мой проект, я бы написал отдельную программу (на nodejs или другом языке), которая запускалась бы так часто, как это часто вызывается подсистемой cron ОС , а не nodejs. Эта программа не будет работать как веб-сервер, а будет просто автономной.

Автономная программа будет подключаться к вашей базе данных пользователей, извлекать список сообщений, которые ей нужно отправить, а затем использовать Telegram для их отправки.

Когда отправка завершится, она завершит работу, зная, что cron ОС снова запустит ее, когда придет время.

...