Botkitのドキュメントを調べた後、ボットが特定の時間にチャネルへのメッセージを単独で開始する方法はありません。私がやったことは、特定の時間に何をしたいのかを実行する.startRTM関数にコールバック関数を提供することですが、コールは別のAPIから情報を取得するために非同期です。 while(1) {}
コールですべてを固執するよりも、これにアプローチする方が良いでしょうか?そうでない場合は、JSがメインスレッド上で実行されているので、コールバック関数をスキップしてr.getHotコールバックを成功させるにはどうすればいいですか。変数rはスヌーラップライブラリからのものです。特定の時間に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"
});
});
}
}
}
}
});