Webhook kullanma¶
Webhook, tek bir sunucu kanalına mesaj gönderen bir URL'dir. Bot hesabına, gateway bağlantısına veya Authorization başlığına ihtiyaç duymaz: gizli token URL'nin bir parçasıdır. Webhook'lar, bildirimleri (derleme sonuçları, uyarılar, akışlar) TEBHOS'a iletmenin en basit yoludur.
| Bot | Webhook | |
|---|---|---|
| Ayrı hesap | Evet, bir bot kullanıcısı | Hayır |
| Olay alır | Evet, gateway üzerinden | Hayır |
| Mesaj gönderir | Erişebildiği her kanala | Yalnızca kendi kanalına |
| Kimlik bilgisi | Authorization başlığında bot token'ı |
URL içinde token |
| Nereden kullanılabilir | Kendi sunucunuzdan | HTTP POST gönderebilen her şeyden |
Yollar https://tebhos.com/api/v1 adresine görelidir. Başvurunun tamamı Webhook'lar sayfasındadır.
Webhook oluştur¶
TEBHOS uygulamasında kanalın ayarlarını açın, Webhooks bölümünde bir webhook oluşturun ve URL'sini kopyalayın. API üzerinden:
POST /channels/{channel_id}/webhooks
O kanalda Manage Webhooks iznini (ve View Channel iznini) gerektirir. Kullanıcı oturumu veya bot token'ı ile çalışır. Yalnızca sunucu kanallarının webhook'u olabilir. Hız sınırı: kanal başına dakikada 10. Bir kanalın en fazla 15, bir sunucunun en fazla 1000 webhook'u olabilir.
| Alan | Tür | Açıklama |
|---|---|---|
| name | string | Varsayılan görünen ad, 1–80 karakter |
| avatar? | ?string | Data URI olarak varsayılan avatar (data:image/png;base64,...) |
curl -X POST https://tebhos.com/api/v1/channels/1290849012346880000/webhooks \
-H "Authorization: Bot $TEBHOS_BOT_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name": "CI"}'
{
"id": "1290860512238080000",
"guild_id": "1290848871133052928",
"channel_id": "1290849012346880000",
"name": "CI",
"avatar": null,
"token": "fS3kq...9Zp"
}
Webhook URL'si https://tebhos.com/api/v1/webhooks/{id}/{token} biçimindedir.
Webhook URL'si gizlidir
URL'ye sahip olan herkes kanala mesaj gönderebilir. Onu bir parola gibi saklayın. Sızarsa webhook'u silin ve yenisini oluşturun.
Webhook yürüt¶
POST /webhooks/{webhook_id}/{webhook_token}
Bir mesaj gönderir. Authorization başlığı gerekmez. Hız sınırı: webhook başına dakikada 60.
| Alan | Tür | Açıklama |
|---|---|---|
| content? | string | Mesaj metni, en fazla 4000 karakter |
| embeds? | array | En fazla 10 zengin gömme (embed): title, description, url, color, timestamp, author, image, thumbnail, footer, fields. Bkz. Gömme sınırları |
| username? | string | Bu mesaj için webhook'un görünen adını geçersiz kılar, 1–80 karakter |
| allowed_mentions? | object | parse ("users", "everyone" listesi) ve users (kullanıcı kimlikleri listesi), hangi bahsetmelerin kişilere bildirim göndereceğini sınırlar. Gönderilmezse kimseye bildirim gitmez ({"parse": []}) |
| flags? | integer | Mesaj bayrakları |
content veya embeds zorunludur; ikisi de olmayan bir mesaj 400 döndürür.
| Sorgu | Tür | Açıklama |
|---|---|---|
| wait? | boolean | true, oluşturulan mesaj nesnesiyle 200 döndürür. Varsayılan: gövdesiz 204 |
curl -X POST "https://tebhos.com/api/v1/webhooks/1290860512238080000/fS3kq...9Zp?wait=true" \
-H "Content-Type: application/json" \
-d '{"username": "CI", "content": "Build #812 passed", "embeds": [{"title": "main", "description": "All 214 tests green", "color": 3066993}]}'
TEBHOS'ta desteklenmez
avatar_url, attachments, message_reference, sticker_ids, nonce ve tts uyumluluk için kabul edilir ama yok sayılır: webhook mesajı her zaman webhook'un kayıtlı avatarını kullanır, dosya veya çıkartma taşımaz ve hiçbir zaman yanıt (reply) olmaz.
Uyumlu biçimler¶
Yalnızca başka bir webhook biçimini konuşan hizmetler, biçime özgü bir yol üzerinden aynı webhook'a gönderim yapabilir:
| Yol | Kabul ettiği |
|---|---|
POST /webhooks/{webhook_id}/{webhook_token}/github |
GitHub webhook teslimleri |
POST /webhooks/{webhook_id}/{webhook_token}/slack |
Yaygın gelen webhook JSON biçimi (text, username, title, text, color ve fields içeren attachments). Başarıda ok ile yanıt verir |
POST /webhooks/{webhook_id}/{webhook_token}/instatus |
Instatus durum sayfası bildirimleri |
Webhook mesajını düzenle veya sil¶
Aynı token ile webhook'un gönderdiği mesajları yönetebilirsiniz:
| İşlem | Uç nokta |
|---|---|
| Al | GET /webhooks/{webhook_id}/{webhook_token}/messages/{message_id} |
| Düzenle | PATCH /webhooks/{webhook_id}/{webhook_token}/messages/{message_id} |
| Sil | DELETE /webhooks/{webhook_id}/{webhook_token}/messages/{message_id} |
Webhook'un kendisini yönet¶
| İşlem | Uç nokta |
|---|---|
| Kimlik doğrulamadan oku | GET /webhooks/{webhook_id}/{webhook_token} |
| Yeniden adlandır, avatarı değiştir | PATCH /webhooks/{webhook_id}/{webhook_token} |
| Sil | DELETE /webhooks/{webhook_id}/{webhook_token} |
| Bir kanalın webhook'larını listele | GET /channels/{channel_id}/webhooks (Manage Webhooks gerekir) |
TEBHOS'ta olup bitene tepki vermeniz gerekiyorsa bot, yalnızca gönderim yapmanız gerekiyorsa webhook seçin.