Slack Mesaj Yapısı
Göndereceğimiz mesajların, bir JSON
yapısı içinde, anahtar / değer çiftleri şeklinde tutulması gerekiyor. Mesaj metnini içeren anahtarı text
olarak belirtiyoruz. Aşağıda sadece mesaj metnini içeren basit bir JSON
yapısını görebilirsiniz.
{ "text": "Bu bir deneme mesajıdır.\nBu cümle ise ikinci satıra yazılır." }
Not: Mesaj içinde bir alt satıra geçiş yapmak için \n
karakterlerini kullanıyoruz. \n
karakterinden sonra yazılan mesaj metni, bir alt satırdan başlatılarak yazdırılır.
Mesajımızı bu haliyle gönderdiğimizde mesaj iletisi gönderilir ancak gönderen ismi ve icon belirtmediğimiz için, bu bilgiler bir önceki konuda Webhook parametrelerini oluşturduğumuz sırada girdiğimiz ön tanımlı değerlerden alınır. Bu yapıya farklı parametreler ekleyerek, ön tanımlı değerler yerine bizim gönderdiğimiz değerlerin görünmesini sağlayabiliriz.
Gönderen İsmi
Mesajımızın gönderen adını değiştirmek için username
anahtarını kullanıyoruz. Bu anahtarı ve içerdiği değeri JSON
yapımıza dahil edelim.
{
"username": "firat",
"text": "Bu bir deneme mesajıdır.\nBu cümle ise ikinci satıra yazılır."
}
Kanal İsmi / Alıcı Adı
Standart olarak bir kanal belirlemiştik. Mesajımızı farklı bir kanala göndermek istediğimizde channel
anahtarını kullanıyoruz. Kanal ismini değer olarak girerken ismin başına #
(diyez) karakterini girmemiz gerekiyor. Mesajımızı bir kanal yerine, projemize dahil edilmiş bir kullanıcıya özel mesaj olarak göndermek için, kullanıcı adının başına @
(kuyruklu a) karakterini koyabiliriz. (Örn. "channel": "@firat"
)
{
"username": "firat",
"channel": "#tasarım",
"text": "Bu bir deneme mesajıdır.\nBu cümle ise ikinci satıra yazılır."
}
Uyarı: Webhook entegrasyonunda belirlediğimiz ön tanımlı kanal ya da kullanıcı adını, channel
anahtarına değer olarak yazdığınızda, mesajlarınız @slackbot
kullanıcısına gönderiliyor. Bu durumu aşmak için, ön tanımlı kanal / kişiye mesaj gönderirken, channel
anahtarını JSON
yapısına eklemeyebilir veya değerini boş bırakabilirsiniz (Örn. "channel": ""
). Bu şekilde gönderilen mesajlar ön tanımlı kanala / kişiye gönderilir.
Mesaj Iconu veya Görüntüsü
Her gönderilen mesajın solunda kullanıcıya ait bir görüntü veya icon bulunur. Bu iconu Slack’de tanımlı iconlar üzerinden seçmek için icon_emoji
, harici bir kaynaktaki görüntüyü seçmek için de icon_url
anahtarları kullanılır (Örn. "icon_url": "https://slack.com/img/icons/app-57.png"
).
{
"username": "firat",
"channel": "#tasarım",
"icon_emoji": ":ghost:",
"text": "Bu bir deneme mesajıdır.\nBu cümle ise ikinci satıra yazılır."
}
Bağlantı (Link) Oluşturma
Mesaj metni içinde bir bağlantıya köprü oluşturabilmek için < >
karakterleri içine bağlantıyı eklememiz gerekiyor. Mesaj içinde bağlantı yerine köprülenmiş bir metin göstermek istiyorsak, bağlantının hemen bitimine |
(pipe) karakterini ekleyip devamında köprü oluşturacağımız metnimizi ekliyoruz.
{
"username": "firat",
"channel": "#tasarım",
"icon_emoji": ":ghost:",
"text": "Bu bir deneme mesajıdır.\nBu cümle ise ikinci satıra yazılır. <https://example.com/|Buraya tıklayın.> "
}
Şu ana kadar oluşturduğumuz mesaj yapısının, Slack arayüzündeki görüntüsünü aşağıdan görebilirsiniz.
Görüldüğü gibi < >
karakterlerini mesaj metnimizin içine yazdık. Ancak görüntülenen mesajda bu karakterler gizlendi. Bu karakterleri birer operatör olarak değil de, mesaj metnimizin bir parçası olarak görüntülemek istediğimizde, URL kodlaması denilen yöntemle kodlanmış halini göndermemiz gerekiyor. Slack mesajlarında bu işlemi yalnızca 3 karakter için yapmamız gerektiği belirtilmiş.
-
&
Ve anlamına gelen bu karakter yerine&
-
<
Küçüktür karakteri yerine<
-
>
Büyüktür karakteri yerine>
Mesaj içeriğinde farklı görünümler oluşturmak için bu sayfaya göz atabilirsiniz.
Bilgi: Oluşturduğunuz görünümleri bu sayfada test edebilirsiniz.
Son oluşturduğumuz haliyle bu yapıyı bir POST
isteğinin gövdesine ekleyerek gönderebiliriz. İkinci bir yöntem ise bu JSON
yapısını POST
istek gövdesinde payload
parametresine ekleyerek göndermek. Sonraki adımlarda, ikinci yöntemi kullanarak gönderme işlemini yapacağız. Yani elimizdeki verinin son hali aşağıdaki gibi olmalı.
payload = {
"username": "firat",
"channel": "#tasarım",
"icon_emoji": ":ghost:",
"text":"Bu bir deneme mesajıdır.\nBu cümle ise ikinci satıra yazılır. <https://example.com/|Buraya tıklayın.> "
}
Yapı bu haliyle sadece mesaj bilgilerimizi içeriyor. POST
isteğini göndereceğimiz araç olan CURL’e ait bazı parametre ve gereklilikleri de sırası geldikçe kod bloğumuza ekleyeceğiz.