【问题标题】:How to see that someone made public channel private in Slack?如何看到有人在 Slack 中将公共频道设为私有?
【发布时间】:2018-07-22 19:37:25
【问题描述】:

我不知道如何使用来自 Slack 的 EventsAPI。

所以,我们的机器人会这样做:

  1. 创建公共频道#test
  2. 使用用户令牌邀请机器人加入频道
  3. 从现在开始,我们将使用机器人令牌在频道上发布消息

当有人将公共频道转换为私人频道时,就会出现问题。频道 ID 更改,机器人收到错误 channel_not_found

您知道如何在我们的系统上自动跟踪此更改和更新 ID 吗? Bot仍然是频道的成员!

【问题讨论】:

    标签: slack slack-api


    【解决方案1】:

    我找到了一种方法,也得到了 Slack 帮助团队的确认。

    基本上当频道转换为私有时,你会得到这些事件:

    1. channel_deleted 带有您的公共频道的 ID
    2. member_joined_channel 带有新私人频道的 id 和 bot_id

    当您收到member_joined_channel 时,从 Slack 中检索新频道的名称,如果它与您以前的公共频道匹配,那么您知道它是同一个但现在是私有的。

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

    我刚刚使用生产应用程序对其进行了测试,它可以工作! :)

    【讨论】:

    • 这是一个很好的答案。请将其标记为解决方案,以便其他人更容易找到它。 ty
    • 我不确定,但这可能不再正确 - Slack 曾经删除一个频道并创建另一个频道,但听起来他们现在支持正确的转换。 api.slack.com/changelog/…
    【解决方案2】:

    我认为目前不可能。

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

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

    但是,您可以通过检查 conversations.list 存在哪些公共和私人频道以及您的 bot 是 conversations.member 的成员来防止此错误发生。

    【讨论】:

      猜你喜欢
      • 2021-04-06
      • 2019-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-18
      • 2017-09-02
      • 2021-10-10
      相关资源
      最近更新 更多