Slack bot 删除消息的权限

dua*_*ty_ 6 slack-api slack

我正在编写一个机器人,它将使除一组管理员之外的大多数用户的某些频道只读。这意味着机器人需要获得删除用户消息的权限。当我尝试使用机器人删除一条消息时,我得到了cant_delete_message回复。我知道我需要另一个令牌,一个以 xoxp 开头的令牌(我已经有了 xoxb)。

我已经阅读了很多关于这个主题的教程和文档,但我认为它们大多不适合我的用例:我不想用 Slack 创建和注册一个应用程序,因为这只会在内部使用。

我怎样才能得到这个主令牌?

Eri*_*ken 5

为了能够通过您的机器人删除其他用户的消息,您需要以下内容:

  1. 您的 Slack 应用程序需要由管理员安装
  2. 您需要使用用户令牌,而不是机器人令牌来调用chat.delete

您在 Slack 应用程序的安装过程中获得用户令牌,您将始终收到两个令牌:用户令牌(称为访问令牌)和机器人令牌。

请注意,您将需要一个 Slack 应用程序(包括机器人用户) - 它不适用于自定义机器人用户。

有关机器人用户的官方文档示例:

{
    "access_token": "xoxp-XXXXXXXX-XXXXXXXX-XXXXX",
    "scope": "incoming-webhook,commands,bot",
    "team_name": "Team Installing Your Hook",
    "team_id": "XXXXXXXXXX",
    "incoming_webhook": {
        "url": "https://hooks.slack.com/TXXXXX/BXXXXX/XXXXXXXXXX",
        "channel": "#channel-it-will-post-to",
        "configuration_url": "https://teamname.slack.com/services/BXXXXX"
    },
    "bot":{
        "bot_user_id":"UTTTTTTTTTTR",
        "bot_access_token":"xoxb-XXXXXXXXXXXX-TTTTTTTTTTTTTT"
    }
}
Run Code Online (Sandbox Code Playgroud)

为了验证这里是官方文档关于该主题的内容:

与典型用户令牌一起使用时,只能删除该用户发布的消息。

与管理员用户的用户令牌一起使用时,可能会删除工作区中发布的大多数消息。

与机器人用户的令牌一起使用时,只能删除该机器人用户发布的消息。