使用Slack API,如何同时向所有用户发送消息?

时间:2017-12-21 03:57:59

标签: python slack slack-api

在Slack上,我知道使用chat.postMessage允许我单独向每个用户发送消息,但我如何直接向整个团队(400名成员)发送消息?

2 个答案:

答案 0 :(得分:2)

您好,因为您需要一个包含所有400个频道的频道,因此目前您无法发送给400个人用户。要将消息发送到通道,只需为postMessage方法添加通道参数。

检查这个:: https://api.slack.com/methods/chat.postMessage

答案 1 :(得分:2)

没有"批量" chat.postMessage的变体。因此,您基本上需要构建自己的批量邮件发件人,您可以通过迭代用户列表并向每个用户发送一条消息来轻松完成。

您可以使用users.list获取所有用户的列表。然后,您有两个发送直接消息的选项:

  1. Slackbot频道:使用每个用户的ID作为频道,向每个频道发送chat.postMessage的消息。
  2. 应用渠道:为每位用户获取im.open的IM渠道ID 然后将其用作chat.postMessage的频道。这只有在你有机器人用户并从机器人用户发送消息时才有效。
  3. 请注意,请求限制为每秒1条消息。

    对于Slack和您的应用之间的许多请求,还有3秒的请求超时。 (例如,对斜杠命令的直接响应)。因此,如果您的机器人需要发送许多消息,您希望使用一种允许您异步发送它们的方法。

    对我来说这个问题的一个解决方案是对我的机器人发送的所有Slack消息使用消息队列。