Webhook, belirli bir web adresi üzerinden HTTP istekleri gönderilerek yapılan veri iletişimidir. Bu adrese POST veya GET yöntemi ile bir HTTP isteği gönderilir. İsteği alan uygulama gerekli işlemi yerine getirir. Eğer gerekli ise aynı yol ve yöntemlerle isteği yapan uygulamaya yine bir HTTP isteği gönderebilir. Slack platformunda Slack tarafına yapılan HTTP istekleri için Incoming Webhooks, Slack tarafından istemciye yapılan istekler için de Outgoing Webhooks entegrasyonunun yapılması gerekir. Bu uygulamada ise Slack Incoming Webhooks kullanarak, yazdığımız mesajların Slack projemizde bulunan kanal ya da kişilere mesaj olarak gönderilmesini sağlıyoruz.
Not: Eğer Slack “gelen” mesajlarını uygulamanız üzerine çekmek istiyorsanız Outgoing Webhooks entegrasyonu yapmalısınız.
 Bu yöntemde mesaj metni, gönderen ismi, gönderilen kanal ya da kişi ve mesaj ikonu gibi bazı verileri üzerinde taşıyan, JSON formatında bir yapı oluşturulur ve HTTP protokolü üzerinden POST yöntemi ile gönderilir. Datanın gönderilmesiyle birlikte mesajımız Slack projemizde gerçek zamanlı olarak belirecektir.
Bu şekilde gönderilen mesajların, görünüm bakımından diğer mesajlardan farkı yoktur. Yine bir gönderen adı, saat, gönderene ait bir icon ve mesaj metni bulunmaktadır. Yalnızca gönderen adının yanında api aracılığıyla gönderildiğini ifade eden bir APP ibaresi görülür.
Not: Farklı konu satırları ve butonlar içeren, görsel bakımdan daha zengin iletiler göndermek isterseniz bu sayfayı inceleyebilirsiniz.
 Bu yöntemi kullanarak mesaj gönderebilmemiz için ilk olarak Slack üzerinde yeni bir Incoming Webhooks entegrasyonu oluşturmamız gerekiyor. Daha sonra bu entegrasyonun başlangıç parametrelerini belirleyerek, oluşturulan linki uygulamamızda kullanmak üzere bir yere yedeklemeliyiz.

Entegrasyon Oluşturma

Yeni bir Webhook entegrasyonu oluşturmak için, Slack web sitesi üzerinden projemize giriş yaptıktan sonra, New Configuration sayfasına giriyoruz.

Sayfaya giriş yaptığımızda hemen alt satırda bir kanal seçmemiz isteniyor. Bu kanal, göndereceğimiz JSON verisinde herhangi bir kanal adı belirtmediğimizde, mesajlarımızın gideceği standart kanal olarak kullanılıyor. Ama JSON içinde belirttiğimiz kanalın önceliği var. Yani burada belirttiğimiz kanal ne olursa olsun, mesajımız JSON verisi içinde belirteceğimiz kanala gönderiliyor. Bu alandan isterseniz kanal yerine bir kullanıcının adını da seçebilirsiniz.


Seçimi yaptıktan sonra hemen altta aktif hale gelen butonuna tıklıyoruz.

Bu şekilde artık projemizde bir Incoming Webhook entegrasyonu oluşturmuş olduk.

Ön Tanımlı Parametreler

Bir önceki adımda oluşturduğumuz yeni Incoming Webhooks entegrasyonunun, standart parametrelerini ayarlayarak kaydetmemiz gerekiyor. Bunun için, açılan Edit Configuration sayfasında bazı parametreleri belirlememiz gerekli.
İpucu: New configuration sayfasını kapattıysanız, sayfaya geri dönebilmek için:

  • Custom Integration sayfasına girin.
  • Yandaki Incoming Webhooks yazısına tıklayın.
  • Açılan sayfada Configured Custom Integrations başlığı altındaki listede Webhook adınızı bulun ve yanındaki kalem simgesine tıklayın.

Eğer hiç bir isim görüntülenmiyorsa oluşturma işlemi tamamlanamamış demektir. Bu nedenle bir önceki adımı tekrar uygulayarak önce yeni bir entegrasyon oluşturmanız gerekiyor. Sonra bu adımdan devam edebilirsiniz.
Bu sayfada Setup InstructionsMessage Attachments ve Integration Settings adında üç ana başlık bulunuyor.

Setup Instructions

Bu başlık altında Incoming Webhooks URL ve genel bir mesaj yapısının nasıl olması gerektiğine dair bazı bilgiler ve örnekler verilmiş. Mesajınıza bağlantı içeren metinler eklemek, gönderen adı veya iconunu değiştirmek için gerekli işlemler örneklerle gösterilmiş. Ve Curl kullanılarak örnek bir POST isteği komut yapısı verilmiş.

Message Attachments

Farklı konu satırları ve butonlar içeren, görsel olarak daha zengin mesaj içeriklerinin nasıl oluşturulacağı hakkında bilgiler bu başlık altında bulunuyor.

Integration Settings

Bu başlık altında ise ön tanımlı parametrelerimizi belirleyeceğimiz alanlar var.

  • Post to Channel alanında, bir önceki adımda belirlediğimiz standart kanalımız görünüyor. Bu alanı kullanarak kanalı değiştirebiliyoruz.
  • Webhook URL alanında görülen linki bir yere yedekleyelim. İlerleyen aşamalarda bu linke oluşturduğumuz mesaj bloklarını göndereceğiz.
  • Descriptive Label alanı, oluşturulan çok sayıda Webhook arasından istediklerimizi daha kolay ayırt edebilmemiz için kullanılan etiketlerin girildiği alan. İsteğe bağlı olduğu için boş bırakabilirsiniz.
  • Customize Name alanına, mesajımızın standart gönderen ismini giriyoruz. Eğer gönderilen mesajda herhangi bir kullanıcı adı belirtilmezse mesajımız bu isimle gönderilecek.
  • Customize Icon alanında, mesajımızın solunda beliren icon seçilebiliyor. Bu alanda ister Slack içinde kullanılan iconlardan birini seçebilir, isterseniz de başka bir görüntü dosyası yükleyebilirsiniz. Bu bilgi de yine ön tanımlı olduğu için uygulama içinde göndereceğimiz icon bilgisi bu bilginin yerine geçecek.
  • Preview Message alanında mevcut parametrelerle mesajınızın Slack üzerinde nasıl görüntüleneceğine dair örnek bir görüntü verilmiş.

Parametreleri ayarladıktan sonra butonu ile kaydedelim.
 
Artık projemiz üzerinde kullanabileceğimiz bir Incoming Webhooks entegrasyonumuz var ve bu entegrasyonda oluşturulan bağlantıya mesaj bloğumuzu göndererek Slack üzerinde yayınlanmasını sağlayabiliriz.