【发布时间】:2018-07-22 19:37:25
【问题描述】:
我不知道如何使用来自 Slack 的 EventsAPI。
所以,我们的机器人会这样做:
- 创建公共频道#test
- 使用用户令牌邀请机器人加入频道
- 从现在开始,我们将使用机器人令牌在频道上发布消息
当有人将公共频道转换为私人频道时,就会出现问题。频道 ID 更改,机器人收到错误 channel_not_found。
您知道如何在我们的系统上自动跟踪此更改和更新 ID 吗? Bot仍然是频道的成员!
【问题讨论】:
我不知道如何使用来自 Slack 的 EventsAPI。
所以,我们的机器人会这样做:
当有人将公共频道转换为私人频道时,就会出现问题。频道 ID 更改,机器人收到错误 channel_not_found。
您知道如何在我们的系统上自动跟踪此更改和更新 ID 吗? Bot仍然是频道的成员!
【问题讨论】:
我找到了一种方法,也得到了 Slack 帮助团队的确认。
基本上当频道转换为私有时,你会得到这些事件:
channel_deleted 带有您的公共频道的 IDmember_joined_channel 带有新私人频道的 id 和 bot_id当您收到member_joined_channel 时,从 Slack 中检索新频道的名称,如果它与您以前的公共频道匹配,那么您知道它是同一个但现在是私有的。
Slack 不允许创建具有相同名称的频道,因此这是指标。
我刚刚使用生产应用程序对其进行了测试,它可以工作! :)
【讨论】:
我认为目前不可能。
当然,当通道被转换时,您会期望特定的Slack event 触发,但似乎没有。如果你需要这个,我建议你写一个请求,他们会为它添加一个事件。
您可以做的一件事是限制谁可以在您的 Slack 工作场所创建私人频道,以限制意外使用的风险。
但是,您可以通过检查 conversations.list 存在哪些公共和私人频道以及您的 bot 是 conversations.member 的成员来防止此错误发生。
【讨论】: