Ответ команды 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
) - Этот подход будет хорошо работать в общедоступных каналах, но не в каком-либо частном или даже прямом канале сообщений, поскольку ваше приложение может не иметь доступа к этому каналу. Чтобы смягчить, я могу рекомендовать заставить пользователя пригласить вашего бота на любой частный канал, предоставляя доступ к вашему приложению.