You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无需额外权限与Bot,基于Slack Commands API删除交互式消息

实现无需额外权限与Bot的Slack Cancel删除按钮方案

嘿,这个需求我正好实践过,完全可以满足!核心是利用Slack交互式消息的原生响应能力,让用户点击Cancel按钮后直接删除目标消息,全程不需要你的应用拥有chat:write:user权限,也不需要单独创建Bot用户。

核心原理

当用户触发你的Slack命令后,你返回的交互式消息里的按钮,在被点击时可以让你的应用返回一个特定指令,告诉Slack以用户自身的权限删除那条原始消息——这个操作是Slack原生支持的,不需要应用额外申请权限。

具体实现步骤

  • 1. 构建包含Cancel按钮的交互式消息
    在你返回的消息附件里,添加一个类型为button的Cancel按钮,建议设置style: danger让按钮显示红色(更直观),并给它一个明确的action_id方便后续识别:

    {
      "attachments": [
        {
          "actions": [
            // 你的其他功能按钮
            {
              "type": "button",
              "text": {
                "type": "plain_text",
                "text": "Cancel"
              },
              "style": "danger",
              "action_id": "cancel_command"
            }
          ]
        }
      ]
    }
    
  • 2. 处理Cancel按钮的交互请求
    当Slack把用户点击Cancel按钮的POST请求发送到你的应用端点时,你只需要返回一段简单的JSON响应,指定response_action为delete_original:

    {
      "response_action": "delete_original"
    }
    

    这个响应会直接通知Slack删除用户最初收到的那条交互式消息,而且整个操作是以用户自己的权限执行的,所以你的应用完全不需要额外的权限,也不需要Bot用户参与。

重要细节提醒

  • 确保你的应用已经正确配置了交互式组件的请求端点,Slack能正常把按钮点击事件发送到你的服务。
  • 这个方案只能删除由当前命令触发的原始消息,正好匹配你“取消当前命令并删除该消息”的需求。
  • 全程不需要创建Bot用户,因为你的应用是作为Slack命令的响应者在工作,所有交互都是基于用户发起的命令流程。

内容的提问来源于stack exchange,提问作者Raul Rene

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:10:32