Slack 斜杠命令:以用户身份而非应用程序身份响应

Slack slash command: Respond as user, not app

当发送对 Slack slash 命令的响应时,我想在启动 slach 命令的用户下发送它。

我用斜杠命令创建了一个 Slack 应用程序。它调用我的 Flask web 服务,我使用“response_url”webhook 将一些东西写回通道。频道中的响应由我的应用给出。这按预期工作。但我希望响应显示为用户已给出响应。

giphy 的 Slack 插件就是一个例子。如果我调用它,我会收到一条短暂的消息,让我选择我想要的 gif。但是随后它以我的名字发布在频道中。

所以我有两个问题:

  1. API 调用如何响应特定用户的斜杠命令?
  2. 我的应用程序需要哪些权限才能允许应用程序的此类行为?

Slack API 文档非常全面,但许多研究并未产生我想要的结果。

谢谢!

当您使用 response_url 时,您无法自定义您的用户名或图标。为此,您需要使用 chat.postMessage API 方法。现在有两种方法可以实现您在这里的需求:

  1. 使用 user token:这使您可以代表用户执行操作。不过,您需要获得每个用户的授权 post 消息作为。

  2. 使用您的机器人令牌请求 chat:write.customize 范围:您可以 post 带有 icon_urlusername 参数的消息,您可以在其中提供用户的分别为两个参数设置图标和名称。这要容易得多,因为这只需要 one-time 授权。

official documentation 中的更多信息。