如何看待有人在Slack私有公共频道?

时间:2018-02-12 15:24:00

标签: slack slack-api

我不知道如何使用Slack的EventsAPI来实现它。

所以,我们的机器人做到了这一点:

  1. 创建公共频道#test
  2. 使用用户令牌
  3. 邀请僵尸程序进入频道
  4. 从现在开始,我们使用bot令牌在频道上发布消息
  5. 当有人将公共频道转换为私有频道时,会出现问题。频道的ID发生变化,僵尸程序会收到错误{{1}}。

    您是否知道如何自动跟踪此更改并更新系统ID? Bot仍然是频道的成员!

2 个答案:

答案 0 :(得分:2)

我找到了一种方法,Slack帮助小组也证实了这一点。

基本上,当频道转换为私人频道时,您会收到以下事件:

  1. channel_deleted,其ID为您的公共频道
  2. member_joined_channel,ID为新的私人频道和bot_id
  3. 当你得到member_joined_channel时,从Slack中检索新频道的名称,如果它与你之前的公共频道相匹配,那么你知道它是同一个但现在是私有的。

    Slack不允许创建具有相同名称的频道,因此这是指示符。

    我刚用生产应用程序对它进行了测试,它确实有效! :)

答案 1 :(得分:1)

我认为目前不可能。

当然,当转换频道时,您会期望触发该案例的特定Slack event,但似乎没有。如果你需要这个,我建议写一个请求,为它添加一个事件。

您可以做的一件事是限制谁可以在您的Slack工作场所创建私人渠道,以限制意外使用的风险。

但是,您可以通过检查conversations.list中存在哪些公开频道和私有频道以及机器人与conversations.member成员的频道来阻止此错误发生。