Discord'un yerleşik Webhook'ları, sunucundaki bir metin kanalına otomatik mesajlar ve veri güncellemeleri göndermenin kolay bir yolu olarak işlev gösterir.
Webhook'ları eskiden bankalarda para gönderirken ve gidişini izlerken keyif aldığın o ilginç pnömatik tüpler olarak düşün, ama paranı bir daha görmemek yerine aslında başka bir platformdan Discord'a mesajlar gönderiyorsun.
Sunucunda bir webhook uç noktası oluşturarak bir Webhook URL'si üretebilir ve bunu bir dizi farklı hizmete ekleyerek bu ikisini birbirine bağlayabilirsin.
Herkes pnömatik tüplere bayılsa da (bu %100 geçerli bir hakikattir) webhook'ların kullanılması için başka bir web sitesinin gerekli olduğunu unutmamak gerekir (ancak programlamaya yatkın olan kullanıcıların kendi tüp zımbırtılarını oluşturması da mümkündür).
Bazı hizmetler ve web siteleri webhook'ları kolaylıkla dâhil edecek ve dışarı mesaj gönderecek şekilde tasarlanmıştır, ancak bazıları için bu durum geçerli değildir. Ufak ve kullanışlı bir referans listesi şöyledir:
| Webhook'ları kullanabilir: | Webhook'ları tam olarak kullanamaz: |
| GitHub | Twitch / YouTube |
| CircleCI | Hamster Nelly |
| DataDog |
Webhook Oluşturma
Bunları göz önünde bulundurduktan sonra Discord sunucunu GitHub commit'leri ve çekme istekleri ile güncellemek veya DataDog'dan ya da benzeri bir kaynaktan gelen analiz verilerini takip etmek istersen, işte yapman gerekenler!
- Sunucu Ayarları bölümünü aç ve Entegrasyonlar sekmesine git:
- "Webhook Oluştur" düğmesine tıklayarak yeni bir webhook oluştur!
Burada birkaç seçeneğin olacak. Şunları yapabilirsin:
- Avatarı düzenle: Bunun için sol üst köşedeki ismin yanındaki avatara tıkla
- Webhook'un hangi kanala gönderim yapacağını seç: Bunun için açılır menüden istediğin metin kanalını seç.
- Webhook'unu adlandır: Birden fazla farklı hizmet için birden fazla webhook'u birbirinden ayırt etmene yardımcı olur.
Artık daha fazla web sitesine bağlayarak daha fazla mesaj alabileceğin, sana ait kullanışlı bir URL'n / pnömatik tüp zımbırtın var.
Hızlı Örnek: GitHub Webhook Entegrasyonu
Webhook'lar kendi başlarına çalışamadığı ve amaçlanan şekilde çalışmaları için başka bir web sitesine bağlanmaları gerektiği için, siz GitHub meraklıları ve kod sağlayıcılar için örnek bir entegrasyon eklemenin ideal olacağını düşündüm.
Sana ait bir depoda bulunan bir kod birleştirmesi güncellemesini veya anlık güncellemeyi sunucundaki bir metin kanalına göndermek için Discord'un webhook'larını kullanabilirsin.
1. Mesaj almak istediğin sunucunun/kanalın webhook URL'sini al:
Sunucumda #genel-sohbet etiketli bir metin kanalı oluşturdum ve depo güncellemelerimin bu kanalda mesaj göndermesini istiyorum!
Bu yüzden, Webhook URL'sini Kopyala düğmesine basarak bu kanaldaki webhook URL'sini alacağım:
2. Webhook URL'sini GitHub deponun ayarlarına ekle
Discord sunucuna güncelleme göndermesini istediğin depoyu seç. Depoyu seçtikten sonra, Ayarlar (Settings) > Webhook menüsüne git
Ardından "Webhook ekle" ("Add webhook") düğmesine tıkla ve Discord tarafından oluşturulan URL'yi "Yük URL'si" ("Payload URL") alanına gir.
Webhook'un mesajları düzgün şekilde görüntülemesini sağlamak için URL'nin sonuna '/github' eklemen gerçekten gerçekten gerçekten GERÇEKTEN gerçekten çok önemlidir. Evet, beş tane "gerçekten" edecek kadar önemli.
URL'nin yanı sıra, aralarından seçim yapabileceğin GitHub'a özel bazı başka seçenekler de mevcuttur. İçerik türü (content type) için uygulama/json (application/json) seçeneğini kullandığından emin ol. Discord'un webhook biçimi JSON'u gerçekten çok sever. Bir sonraki bölümde, hangi etkinliklerin (events) webhook mesajlarını tetikleyeceğini özelleştirebilirsin.
Etkinlik bildirimlerini özelleştirme seçeneğinin altındaki son "Webhook ekle" ("Add webhook") düğmesine tıkladığında işlem tamamdır! Depoya gönderilen tüm güncellemeler (benioku dosyasını düzenlemek dâhil olmak üzere) metin kanalında gösterilir:
İşte her şey tamam! GitHub, webhook yoluyla mesaj gönderilmesini sağlayan entegrasyonlara sadece bir örnektir. JSON uygulamaları oluşturma veya HTTP POST istekleri konusunda yetenekliysen ve kendi webhook'larını özelleştirmek istersen, geliştirici belgelerimizde daha fazla bilgiye ulaşabilirsin.