我如何对 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 进行编程以每周自动发送常规消息的主要内容,如果未能解决你的问题,请参考以下文章
当另一个人使用命令时,如何对 discord.py 机器人进行编程以通知我?