【问题标题】:Delete interactive message (command response) just with Slack Commands API仅使用 Slack Commands API 删除交互式消息(命令响应)
【发布时间】:2018-04-03 09:51:03
【问题描述】:

所以我在 Node 中构建了一个可以响应一些用户命令的 slack 应用程序。它通常以带有一些附件和按钮的交互式消息进行响应。

对于某些按钮,我返回不同类型的文本或其他附件,但我还希望有一个“取消”按钮,它基本上可以取消当前命令 - 从用户的聊天中删除它。

问题是我想这样做,而不必请求 chat:write:user 范围或不必创建机器人

    1234563不舒服。
  1. 通过创建机器人我可以实现这一点,但它再次要求允许将机器人添加到频道,我不想要这个。

我的尝试

  1. 使用chat.delete 方法,但我从Slack 获得{ ok: false, error: 'missing_scope', needed: 'chat:write:user', provided: 'identify,commands' },即使我尝试将as_user 设置为false

  2. 以空消息响应命令,如res.send(),或res.send({ text: null }),或res.send({ attachments: null })等。 当您在 Slack 上回复用户命令时,默认情况下它会覆盖之前的内容。我只想什么都不覆盖,基本上删除了原始响应。但是,当我尝试此操作时,它不会做任何事情,除非我提供 一些 内容。

我很确定 #2 是要走的路,我觉得我已经很接近了,这很简单,但我看不到。

我想要的工作示例

我知道这是可以做到的,因为用于 slack 的 GIF Keyboard 应用程序可以做到这一点。搜索 Gif 时,它们在底部有一个“取消”按钮,用于删除当前命令/消息。此外,他们只要求 Commands 范围。

【问题讨论】:

    标签: slack slack-api


    【解决方案1】:

    你在正确的轨道上。选项 #2 有效,因此无需请求范围即可删除消息。

    只需将以下响应发送回 Slack,您应用中的最后一条(临时)消息就会被删除:

    {
        "response_type": "ephemeral",
        "replace_original": true,
        "delete_original": true,
        "text": ""
    }
    

    【讨论】:

    • 神圣 slack API 的圣母,成功了,感谢一百万!
    猜你喜欢
    • 2016-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-10
    • 2022-06-24
    • 1970-01-01
    相关资源
    最近更新 更多