首页 > 解决方案 > 使用 Webhooks 在 Java 和 Slack 之间集成的问题

问题描述

我有黄瓜框架,想使用 Webhooks 将 Java 与 Slack 集成。我完成了以下课程:

public class Message {
private String text;

public String getText() {
    return text;
}

}

public class MessageInterceptorController {
private final MessageSender messageSender;

public MessageInterceptorController(MessageSender messageSender) {
    this.messageSender = messageSender;
}

@PostMapping(path = "/messages/{userName}", consumes = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<String> sendMessage(@PathVariable String userName, @RequestBody Message message) {
    try {
        messageSender.sendMessage(userName, message);
        return ResponseEntity.ok().build();
    } catch (JsonProcessingException e) {
        return ResponseEntity.badRequest().build();
    }
}

}

public class MessageSender {
private static final String HOOKS_URL = "https://hooks.slack.com/services/%s";
private static final Map<String, String> USER_TO_CHANNEL_WEBHOOK =
        Map.of("#channel_name", "T6TXXXXXX/B02LXXXXXX/YXXXXXXXXXXXXX");
public void sendMessage(String userName, Message message) throws JsonProcessingException {
    String userChannelId = USER_TO_CHANNEL_WEBHOOK.get(userName);
    String userWebhookUrl = String.format(HOOKS_URL, userChannelId);
    RestTemplate restTemplate = new RestTemplate();
    HttpHeaders headers = new HttpHeaders();
    headers.setContentType(MediaType.APPLICATION_JSON);
    ObjectMapper objectMapper = new ObjectMapper();
    String messageJson = objectMapper.writeValueAsString(message);
    HttpEntity<String> entity = new HttpEntity<>(messageJson, headers);
    restTemplate.exchange(userWebhookUrl, HttpMethod.POST, entity, String.class);
}

}

但是我没有收到任何通知。谢谢!

标签: javawebhooksslack

解决方案


推荐阅读