Slack API: 只接收特定频道的事件?

Slack API: Receive events in specific channels only?

我构建了一个应用 receives events

默认情况下,范围 channels:history 允许它接收添加应用程序的用户的所有 public 频道中的所有消息的事件。

理想情况下,用户可以在应用程序设置中将其限制为仅某些频道。 (应用程序收到的任何事件都将变得可读。)

现在我看到 2 个选项:

  1. 消息事件包含频道 ID(不是名称)。所以代码可以在频道上过滤,假设有一种方法可以设置它并且用户信任它。

  2. 创建 a bot user(即使应用程序是只读的)用户可以添加到特定频道。

有没有更好的方法?

如果您不想使用机器人用户(您的选项 2),唯一的方法是在您的应用中过滤掉来自不需要的渠道的消息。对于每条创建的新消息(包括从您的应用程序发送的消息),您都会收到一个消息事件。 消息事件确实已经包含 channel ID,因此您可以轻松地基于它进行过滤。

示例:(Source)

{
    "type": "message",
    "channel": "C2147483705",
    "user": "U2147483697",
    "text": "Hello world",
    "ts": "1355517523.000005"
}

事件设置中没有允许您预先选择频道的参数。但由于这似乎是一个反复出现的问题,我建议就此向 Slack 团队发送功能请求。