Слабое использование response_url с Java SDK для команд sla sh? - PullRequest
0 голосов
/ 28 апреля 2020

Я создал конечную точку для приема команд Slack Sla sh, например:

@PostMapping(value = "/slack", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
public String incidentCommand(@RequestParam("token") String token,
                              @RequestParam("team_id") String teamId,
                              @RequestParam("team_domain") String teamDomain,
                              @RequestParam("channel_id") String channelId,
                              @RequestParam("channel_name") String channelName,
                              @RequestParam("user_id") String userId,
                              @RequestParam("user_name") String userName,
                              @RequestParam("command") String command,
                              @RequestParam("text") String text,
                              @RequestParam("response_url") String responseUrl) {


    if (command.equals(INCIDENT)) {
        incidentQueue.push(new Event(userId, token, text, responseUrl));
    } else if (command.equals(POSTMORTEM)) {
        postmortemQueue.push(new Event(userId, token, text, responseUrl));
    } else {
        return "no";
    }
}

Архитектура будет выглядеть так:

  • Slack Controller получает HTTP-запрос от slack
  • Запрос помещается в очередь
  • Запрос обрабатывается
  • Ответ отправляется обратно в резерв (задержка <500 мс) </li>

Однако, когда Глядя на SlackClient в библиотеке Java SDK, похоже, что в любом случае использовать response_url, отправленный slack, не представляется возможным.

Например, для отправки следующего ChatPostMessage не имеется никакого свойства для response_url

sendMessage(ChatPostMessageParams.builder()
                .setText("Ping!")
                .setChannelId(channel)
                .setUsername(username)
                .build())

Означает ли это, что мне просто нужно создать свой собственный HTTP-клиент (используя что-то вроде ApacheHTTPClient?) И напрямую вызвать response_url?

Также есть DTO или объекты домена для определения сообщений в слабом SDK?

...