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