Я создал бот javascript (используя twiw npm), предназначенный для публикации сообщений каждый день. Я могу сделать это пост, но не могу сделать это на любом графике, кроме очень быстро (10 секунд или 5 минут). Я попытался использовать setInterval для этой цели:
require('dotenv').config();
const Twit = require("twit");
const T = new Twit({
consumer_key: process.env.API_KEY,
consumer_secret: process.env.API_SKEY,
access_token: process.env.TOKEN,
access_token_secret: process.env.SECRET_TOKEN,
});
const tweetContent1 = [
array content removed
];
const tweetContent2 = [
array content removed
];
const randomNumber1 = Math.floor(Math.random() * (tweetContent1.length));
const randomNumber2 = Math.floor(Math.random() * (tweetContent2.length));
const tweetContent = tweetContent1[randomNumber1] + tweetContent2[randomNumber2];
setInterval(function(){
T.post("statuses/update", { status: tweetContent
}, function(err, data, response) {
if (err) {
console.log(err);
} else {
console.log(data);
}});
}, 86400000);
console.log('Your bot is running, go catch it.');
Это работает в моем собственном терминале (с интервалом, установленным на что-то немного меньшее), и код работает без окружения setInterval.
Затем я загрузил эту версию в Heroku, где она, похоже, пыталась публиковать одно и то же снова и снова (ошибка 137 в API Twitter). Затем я попробовал Glitch, где он работал с меньшим интервалом, но попытка использовать задание cron, чтобы разбудить его, не работала.
Есть ли другой способ сделать этот пост бота по расписанию, например, каждый день определенное время?