Slack API: 只接收特定频道的事件?
Slack API: Receive events in specific channels only?
我构建了一个应用 receives events。
默认情况下,范围 channels:history
允许它接收添加应用程序的用户的所有 public 频道中的所有消息的事件。
理想情况下,用户可以在应用程序设置中将其限制为仅某些频道。 (应用程序收到的任何事件都将变得可读。)
现在我看到 2 个选项:
消息事件包含频道 ID(不是名称)。所以代码可以在频道上过滤,假设有一种方法可以设置它并且用户信任它。
创建 a bot user(即使应用程序是只读的)用户可以添加到特定频道。
有没有更好的方法?
如果您不想使用机器人用户(您的选项 2),唯一的方法是在您的应用中过滤掉来自不需要的渠道的消息。对于每条创建的新消息(包括从您的应用程序发送的消息),您都会收到一个消息事件。
消息事件确实已经包含 channel ID
,因此您可以轻松地基于它进行过滤。
示例:(Source)
{
"type": "message",
"channel": "C2147483705",
"user": "U2147483697",
"text": "Hello world",
"ts": "1355517523.000005"
}
事件设置中没有允许您预先选择频道的参数。但由于这似乎是一个反复出现的问题,我建议就此向 Slack 团队发送功能请求。
我构建了一个应用 receives events。
默认情况下,范围 channels:history
允许它接收添加应用程序的用户的所有 public 频道中的所有消息的事件。
理想情况下,用户可以在应用程序设置中将其限制为仅某些频道。 (应用程序收到的任何事件都将变得可读。)
现在我看到 2 个选项:
消息事件包含频道 ID(不是名称)。所以代码可以在频道上过滤,假设有一种方法可以设置它并且用户信任它。
创建 a bot user(即使应用程序是只读的)用户可以添加到特定频道。
有没有更好的方法?
如果您不想使用机器人用户(您的选项 2),唯一的方法是在您的应用中过滤掉来自不需要的渠道的消息。对于每条创建的新消息(包括从您的应用程序发送的消息),您都会收到一个消息事件。
消息事件确实已经包含 channel ID
,因此您可以轻松地基于它进行过滤。
示例:(Source)
{
"type": "message",
"channel": "C2147483705",
"user": "U2147483697",
"text": "Hello world",
"ts": "1355517523.000005"
}
事件设置中没有允许您预先选择频道的参数。但由于这似乎是一个反复出现的问题,我建议就此向 Slack 团队发送功能请求。