Как приложение Slack может сообщить пользователю, почему команда sla sh не удалась, и позволить пользователю редактировать команду? - PullRequest
1 голос
/ 27 апреля 2020

Когда приложению не удается обработать команду Slack sla sh , текст возвращается, чтобы пользователь мог отредактировать его и немедленно отправить его снова. У меня есть команда sla sh, которая ищет, но может не найти никаких результатов. В этом случае я бы хотел, чтобы пользователь сразу же смог изменить свой поиск. Документы Slack объясняют, что я всегда должен возвращать статус HTTP 200, но затем Slack также стирает команду, и пользователь не может сразу же повторить попытку. Когда я пытался ответить со статусом 404, пользователи получали тревожное сообщение, подобное failed with the error "http_client_error". Есть ли способ потерпеть неудачу, но также предоставить пользовательское сообщение для пользователя, почему?

1 Ответ

0 голосов
/ 28 апреля 2020

Да, но нельзя использовать коды состояния HTTP, чтобы сообщать о неудачном поиске.

Просто всегда возвращайте HTTP OK 200, а затем добавляйте ответное сообщение, сообщающее пользователю, что пошло не так. Вы можете сделать это, напрямую ответив на запрос Slack в течение 3 секунд, или, альтернативно, отправив сообщение на response_url.

. Это также четко отражено в официальной документации для команд sla sh:

Отправка ответов об ошибках

Будут времена, когда вам нужно будет сообщить пользователю, что что-то пошло не так - возможно, пользователь указал неверный текстовый параметр рядом с командой, или возможно, произошел сбой в API, используемом для генерации ответа на команду.

В этом случае было бы заманчиво вернуть HTTP 500-ответ на исходную команду, но это неправильный подход. Код состояния, возвращаемый в качестве ответа на команду, должен использоваться только для указания того, успешно ли URL запроса получил полезную нагрузку данных - хотя при обработке и ответе на эту полезную нагрузку могла произойти ошибка, само сообщение все еще было успешным. ( Источник )

Насколько я знаю, невозможно дать сигнал Slack о том, что пользователь должен иметь возможность редактировать свою последнюю команду.

...