Spring Boot RestTemplate ile Slack Kanalına Bildirim Gönderme İşlemleri

Abdurrahman Gazi DİŞ
Appcent
Published in
2 min readJun 27, 2024

Spring Boot ile Slack kanalına mesaj göndermek için Slack’in Webhook API’sini kullanabilirsiniz. Bu yazıda, Spring Boot uygulaması aracılığıyla bir Slack kanalına nasıl mesaj gönderebileceğinizi adım adım anlatacağım.

Adım 1: Slack Webhook URL’si Oluşturma

Öncelikle, Slack’de bir Webhook URL’si oluşturmanız gerekiyor:

  1. Slack uygulamasına giriş yapın.
  2. Incoming Webhooks sayfasına gidin.
  3. Webhook’un gönderileceği kanalı seçin ve webhook URL’sini oluşturun.

Oluşturduğunuz Webhook URL’sini bir yere not alın, çünkü Spring Boot uygulamanızda bunu kullanacağız.

Adım 2: Spring Boot Projesi Oluşturma

Spring Initializr kullanarak yeni bir Spring Boot projesi oluşturun ve gerekli bağımlılıkları ekleyin:

  • Spring Web

Adım 3: Maven Bağımlılıklarını Ekleyin

pom.xml dosyasına gerekli bağımlılıkları ekleyin:

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>

Adım 4: Slack Servisi Oluşturma

Slack kanalına mesaj göndermek için bir servis sınıfı oluşturun.

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;

import com.nimbusds.jose.shaded.json.JSONObject;

import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;

@Service
@RequiredArgsConstructor
@Slf4j
public class SlackNotifyService {

@Autowired
RestTemplate restTemplate;

@Async
public void notifyMessage(String webhookUrl, String message){
log.info("Slack Notify: {}", message);

JSONObject request = new JSONObject();
request.put("text", message);

HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
HttpEntity<String> entity = new HttpEntity<String>(request.toString(), headers);

restTemplate.postForEntity(webhookUrl, entity, String.class);
}

}

Dilerseniz yukarıda yer alan webhookUrl adresini env’dan çekerek kullanabilirsiniz. Yukarıdaki metodu tetiklediğinizde slack arayüzünden seçtiğiniz kanala mesaj gönderme işlemi başarılı bir şekilde gerçekleşecektir.

Sonuç

Bu adımları takip ederek Spring Boot uygulamanızdan Slack kanalına mesaj gönderebilirsiniz. Webhook URL’sini güvenli bir şekilde sakladığınızdan ve yalnızca yetkili kullanıcıların bu URL’yi kullanabildiğinden emin olun. Bu yöntemle, uygulamanızda belirli olaylar veya uyarılar için Slack bildirimleri gönderebilirsiniz.

--

--

Abdurrahman Gazi DİŞ
Appcent
Writer for

Java Developer @appcent || Linkedin: abdurrahman-gazi-dis