斜线命令响应发送两种不同的响应,一个给用户,另一个给通道

Slash command response send two different responses, one to the user and another to channel

我创建了一个斜杠命令“/myMeetings”,这实际上配置了一个 requestURL - https://slack.mycompany.com/slack

所以现在我的用例是发送一个包含两条短信的响应,一条是短暂的,另一条是 in_channel

request_type - in_channel 
and
request_type - ephemeral

像这样

[
    {
      "response_type": "in_channel",
      "text": "This message will be shown to the entire channel"
    },
    {
      "response_type": "ephemeral",
      "text": "only shown to the user who initiates slash command"
    }
]

我怎样才能实现这种行为?

您只能发送一个对 Slash 命令请求的直接响应,并且只能是 in_channelephemeral。所以建议的语法将不起作用。

但是,要实现您的要求,您可以在响应之外简单地 post 一条消息,chat.postMessage for in_channel or chat.postEphermal 用于临时响应。您将在 slask 响应请求中获得频道 ID,因此您知道将消息发送到哪里。

请注意,该方法有一些特殊注意事项:

  • 您的应用需要额外的 posting 消息范围(例如 chat.write.bot)
  • 这种方法在 public 渠道中可以正常工作,但在任何私人甚至直接消息渠道中都行不通,因为您的应用可能无法访问该渠道 渠道。为了缓解,我建议强制用户邀请您的 bot 用户访问任何私人频道,从而为您的应用提供访问权限。