使用 Web API 对许多用户进行 DM 的正确方法

Correct approach to DM many users using Web API

我正在创建一个 Slack 应用程序,在一个有数千名用户的工作区中,我想通过 DM 发送这些(数百个)不共享特定频道的子集。

我在 Web API 中没有看到任何 "batch" 方法,所以我想知道哪种方法是实现此目的的最佳方法。我是否应该逐一遍历收件人列表和 DM?速率限制的含义是什么?

提前致谢!

没有可用的批处理方法 - 您必须向每个用户发送 DM。根据文档,您可能 运行 进入 chat.postMessage 的速率限制,但它非常慷慨:https://api.slack.com/methods/chat.postMessage#rate_limiting

根据您的用例,您有多种选择。

一个。向许多用户发送相同的消息

如果您想向所有用户发送相同的消息(如公告),最简单的方法是将该消息发送到 public 频道并以 <!everyone>.[=13 开始您的消息=]

或者,您可以使用 <!subteam> 向用户组发送相同的消息(仅限付费层 Slack)。

或者确保所有用户都在同一个频道中,然后使用 `' 来称呼该频道中的所有用户。

乙。向多个用户发送单条消息

确实没有"batch"API向多个用户发送消息的方法,因此您必须创建自己的批处理逻辑。速率限制为每个工作区每秒 1 条消息(请参阅 here 以供参考)。

根据您要确保您的批次可以 运行 更长时间而不会 运行 进入任何超时的用户数量,例如通过使用一个队列来存储消息和一个工作进程来一个一个地发送它们。