java - 使用 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);
}
}
但是我没有收到任何通知。谢谢!