Slack bot删除邮件的权限

时间:2018-01-21 18:54:45

标签: slack slack-api

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

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

如何获得此主令牌?

1 个答案:

答案 0 :(得分:3)

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

  1. 您的Slack应用程序需要由管理员安装
  2. 您需要使用用户令牌,而不是机器人令牌来调用chat.delete
  3. 您在Slack App的安装过程中获得用户令牌,您将始终收到两个令牌:用户令牌(称为访问令牌)和机器人令牌。

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

    来自僵尸用户offical documentation的示例:

    {
        "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"
        }
    }
    

    要验证这里是官方文档中有关该主题的内容:

      

    与典型用户令牌一起使用时,可能只会删除已发布的邮件   该用户。

         

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

         

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