1
查看Botkit的文檔後,我沒有看到某種機器人在特定時間自行向某個頻道發起消息的方式。我試過的做法是爲.startRTM函數提供一個回調函數,它可以在特定的時間執行我想要的操作,但是調用是異步的以從另一個API檢索信息。有沒有更好的方法來處理這個問題,而不是在while(1) {}
調用中堅持一切?如果沒有,我怎樣才能讓r.getHot回調成功,因爲JS在主線程上運行,所以它會跳過回調函數。變量r來自snoowrap庫。如何使用botkit在特定時間發送消息?
var bot = controller.spawn({
token: process.env.slacktoken,
incoming_webhook: {
url: process.env.webhookurl
}
}).startRTM(function(err, bot, payload) {
if (!err) {
while(1){
for (var i = 0; i < allowableTimes.length; i++) {
if (new Date().getTime() == allowableTimes[i].getTime()) {
r.getHot('aww', {limit: 1}).then(function(res){
var url = res[0].url;
var title = res[0].title;
console.log(url);
console.log(title);
bot.sendWebhook({
username: "bawwt",
icon_emoji: ":smile_cat:",
text: "<" + url + "|" + title + ">",
channel: "#random"
});
});
}
}
}
}
});