Ответ команды Slash отправляет два разных ответа, один пользователю и другой каналу

Я создал команду slack slash "/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"
    }
]

Как я могу добиться этого поведения?

1 ответ

Решение

Вы можете отправить только один прямой ответ на запрос команды Slash, и это может быть только in_channel или же ephemeral, Таким образом, предлагаемый синтаксис не будет работать.

Тем не менее, для достижения вашего требования вы можете просто опубликовать сообщение в дополнение к ответу, с chat.postMessage для in_channel или chat.postEphermal для эфемерного. Вы получите идентификатор канала в ответном запросе slask, чтобы вы знали, куда отправить сообщение.

Обратите внимание, что с подходом есть несколько особых соображений:

  • Вашему приложению понадобятся дополнительные области для размещения сообщений (например, chat.write.bot)
  • Этот подход будет хорошо работать в общедоступных каналах, но не в каком-либо частном или даже прямом канале сообщений, поскольку ваше приложение может не иметь доступа к этому каналу. Чтобы смягчить, я могу рекомендовать заставить пользователя пригласить вашего бота на любой частный канал, предоставляя доступ к вашему приложению.
Другие вопросы по тегам