我如何编程一个slackbot每周自动发送一条定期消息



我正在构建一个slackbot,它将提醒我所在组织的人员每周执行某些管理(工时费等(。我知道每个人都可以很容易地创建一个重复的提醒。我想要的是创建一个机器人,每周向人们发送一条预先配置好的消息。我在网上看了很多,还没有发现slackbot如何在没有事件或其他提示的情况下发送消息。

我目前正在本地ngrok服务器上测试这一点,该服务器有以下后端:

const { WebClient } = require('@slack/web-api');
const { createEventAdapter } = require('@slack/events-api');
const slackSigningSecret = process.env.SLACK_SIGNING_SECRET;
const slackToken = process.env.SLACK_TOKEN;
const port = process.env.SLACK_PORT || 3000;
const slackEvents = createEventAdapter(slackSigningSecret);
const slackClient = new WebClient(slackToken);
slackEvents.on('app_mention', (event) => {
console.log(`Got message from user ${event.user}: ${event.text}`);
(async () => {
try {
await slackClient.chat.postMessage({ channel: event.channel, text: `Hello <@${event.user}>! Have you completed your Time sheets for this week yet?` })
} catch (error) {
console.log(error.data)
}
})();
});

slackEvents.on('error', console.error);
slackEvents.start(port).then(() => {
console.log(`Server started on port ${port}`)
});

一旦这个提醒完成,我打算在它的基础上(更多的功能,只需要一个开始(,所以请不要推荐我的组织向人们发送提醒的其他方式。

您可以尝试使用chat.scheduleMessage方法(https://api.slack.com/methods/chat.scheduleMessage)。由于您不会依赖于事件,因此您可能需要存储必要的对话ID,以便在应用程序需要调用该方法时做好准备。

相关内容

最新更新