【问题标题】:Slack bot permission to delete a messageSlack bot 删除消息的权限
【发布时间】:2018-06-30 10:19:23
【问题描述】:

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

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

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

【问题讨论】:

    标签: slack slack-api


    【解决方案1】:

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

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

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

    请注意,您将需要一个 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"
        }
    }
    

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

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

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

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

    【讨论】:

    • 所以我在这里创建了一个 Slack 应用程序:https://api.slack.com/apps/。我在这里添加了一个机器人https://api.slack.com/apps/[app-id]/bots。这是我应该做的吗?当我在这里https://[company].slack.com/apps/manage 转到我的应用程序时,我看不到我的应用程序能够添加它。现在呢?
    • 从技术上讲,这是一个新问题 :-) 但是,前两个步骤是正确的。然后,您需要将其安装到您的工作区。从“管理应用程序”添加仅适用于公共应用程序,但您可以转到 https://api.slack.com/apps/[app-id]/install-on-team 直接安装您的内部 Slack 应用程序。另见文档here
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-28
    相关资源
    最近更新 更多