我如何对 Slackbot 进行编程以每周自动发送常规消息

Posted

技术标签:

【中文标题】我如何对 Slackbot 进行编程以每周自动发送常规消息【英文标题】:how do I program a slackbot to send a regular message automatically every week 【发布时间】:2021-09-27 07:15:21 【问题描述】:

我正在构建一个 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`)
);

完成此提醒后,我打算在此基础上再接再厉(更多功能,只需要一个开始),因此请不要推荐我的组织可以向人们发送提醒的其他方式。

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于我如何对 Slackbot 进行编程以每周自动发送常规消息的主要内容,如果未能解决你的问题,请参考以下文章

将附件添加到 Slackbot

当另一个人使用命令时,如何对 discord.py 机器人进行编程以通知我?

laravel 4 中的每周电子邮件通讯

如何以编程方式确认Gmail自动转发验证?

我如何对 youtube 嵌入播放器进行编程以在单击时取消静音

Flutter:如何使用 fcm 以编程方式发送推送通知