Direct Bildirimleri - Anında Uyarılar için Kişisel API Anahtarları

Kanal kurmadan, kişisel bir API anahtarıyla doğrudan bildirim gönderin. Direct anahtarı oluşturun; başlık, gövde ve bağlantıyla anında uyarı tetikleyin.


Direct bildirimleri, basit bir webhook URL'siyle kişisel uyarılar göndermenizi sağlar — kanal kurulumu, şablon veya abone gerekmez. Bir anahtar oluşturun, URL'yi çağırın ve cihazınızda anında bildirim alın.

Direct Nedir?

Kanallar; başkalarıyla paylaşılabilen, yapılandırılmış ve şablonlu bildirimler için harikadır. Ama bazen yalnızca hızlı ve kişisel bir bildirim istersiniz — bir derleme bitti, bir betik tamamlandı, bir sensör tetiklendi. Direct tam olarak bunun için tasarlandı.

Direct ile benzersiz bir webhook URL'sine karşılık gelen kişisel bir API anahtarı elde edersiniz. Bu URL'yi bir başlık ve gövdeyle çağırdığınızda bildirim doğrudan size gönderilir. Herhangi bir kanal yapılandırmasına gerek yoktur.

Direct mi, Kanallar mı?

DirectKanallar
KurulumAnahtar oluşturun, URL'yi kullanınKanal oluşturun, şablonları yapılandırın
KitleYalnızca sizAbone olan herkes
ŞablonlarYok — başlık/gövdeyi her istekte siz belirtirsinizDeğişkenlerle yapılandırılabilir şablonlar
KoşullarYokKoşullu iletim desteklenir
En uygun kullanımKişisel betikler, hızlı uyarılar, otomasyonPaylaşılan uyarılar, yapılandırılmış iş akışları

Başlarken

1. Direct Anahtarı Oluşturun

Echobell uygulamasında kanal listenizin en üstündeki Direct'e dokunun. Ardından yeni bir Direct anahtarı oluşturmak için Oluştur'a dokunun. Anahtara açıklayıcı bir ad verin (örneğin "Derleme Sunucusu", "Ev Laboratuvarı", "Trading Botu").

2. Webhook URL'sini Kopyalayın

Her Direct anahtarının şu biçimde benzersiz bir webhook URL'si vardır:

https://hook.echobell.one/d/{your-key-token}

Bu URL'yi uygulamadaki Direct anahtarı ayrıntı görünümünden bulup kopyalayabilirsiniz. Token güvenlik nedeniyle varsayılan olarak gizlidir — göstermek için dokunun.

3. Bildirim Gönderin

Webhook URL'sini, title ve body içeren bir JSON gövdesiyle çağırın:

POST https://hook.echobell.one/d/YOUR_KEY_TOKEN
Content-Type: application/json

{
  "title": "Build Complete",
  "body": "Project X built successfully in 3m 42s"
}

Hepsi bu kadar — bildirimi anında alırsınız.

İstek Gönderme

POST İsteği (Önerilen)

Bildirim içeriğinizi JSON gövdesiyle gönderin:

POST https://hook.echobell.one/d/YOUR_KEY_TOKEN
Content-Type: application/json

{
  "title": "Deployment Status",
  "body": "v2.1.0 deployed to production",
  "externalLink": "https://dashboard.example.com/deploys/latest"
}

GET İsteği

Parametreleri sorgu dizesiyle de geçirebilirsiniz:

GET https://hook.echobell.one/d/YOUR_KEY_TOKEN?title=Alert&body=CPU+at+95%25

POST Only

Her direct anahtarının Echobell uygulamasında kendi POST Only ayarı vardır. Varsayılan olarak kapalıdır.

Açık olduğunda o anahtarı yalnızca POST tetikleyebilir. Webhook URL'sine yapılan bir GET isteği 405 Method Not Allowed ile reddedilir ve hiçbir bildirim gönderilmez:

{
  "success": false,
  "notificationTriggered": false,
  "message": "This trigger only accepts POST requests; GET triggering is disabled in its settings."
}

HEAD istekleri bundan etkilenmez — POST Only açık da olsa kapalı da olsa 200 yanıtı verir ve asla bildirim tetiklemez.

Ayar anahtar bazlıdır; böylece kabuk tek satırlıkları için GET'e uygun bir anahtar, sohbete veya wiki sayfalarına yapıştırılan URL'ler için de yalnızca POST kabul eden bir anahtar tutabilirsiniz.

İstek Alanları

Tüm alan adları büyük/küçük harfe duyarsızdır — ister JSON gövdesiyle ister sorgu dizesiyle geçirilsin, title, Title ve TITLE aynı şekilde ele alınır.

AlanTürZorunluAçıklama
titlestringHayırBildirim başlığı. Belirtilmezse varsayılan olarak "Direct Notification" kullanılır.
bodystringHayırBildirim gövde metni.
externalLinkstringHayırBildirim kaydında gösterilen tıklanabilir bağlantı.
notificationTypestringHayırBildirimin aciliyet düzeyi. active, time-sensitive veya calling değerlerini kabul eder. Varsayılan active. Bkz. Bildirim Türleri.

Bildirim Türleri

Direct bildirimlerinin aciliyet düzeyini notificationType alanıyla denetleyebilirsiniz:

TürAçıklama
activeStandart bildirim, normal şekilde iletilir. Varsayılan budur.
time-sensitiveOdak modlarını aşabilen yüksek öncelikli bildirim.
callingKritik durumlar için arama benzeri uyarı. Etkin bir premium aboneliği gerektirir. Premium olmadan time-sensitive düzeyine düşer.

Bildirim türlü örnek:

POST https://hook.echobell.one/d/YOUR_KEY_TOKEN
Content-Type: application/json

{
  "title": "Server Down",
  "body": "Production server is unresponsive",
  "notificationType": "calling"
}

Yanıt Biçimi

Başarılı bir istek şunu döndürür:

{
  "success": true,
  "message": "Notification triggered successfully."
}

Anahtar geçersizse veya bulunamazsa (bu durumda bile HTTP 200 döndüğüne dikkat edin):

{
  "success": false,
  "message": "Direct key not found."
}

Direct Anahtarlarını Yönetme

Birden Fazla Anahtar

Farklı amaçlar için birden fazla Direct anahtarı oluşturabilirsiniz:

  • "CI Sunucusu" — derleme ve dağıtım bildirimleri için
  • "Ev Otomasyonu" — IoT sensör uyarıları için
  • "Cron Görevleri" — zamanlanmış görev sonuçları için
  • "Trading Botu" — piyasa uyarıları için

Her anahtarın kendi bağımsız webhook URL'si vardır. Bildirim kayıtları, kendilerini tetikleyen anahtarla otomatik olarak ilişkilendirilir; böylece her bildirimi hangi servisin gönderdiğini kolayca anlarsınız.

Token'ı Sıfırlama

Bir anahtarın webhook URL'si ele geçirilirse, token'ı anahtarın ayrıntı görünümünden sıfırlayabilirsiniz. Bu işlem yeni bir URL üretir ve eskisini anında geçersiz kılar. Eski URL'yi kullanan betik veya servisleri güncelleyin.

Anahtar Silme

Bir Direct anahtarını silmek, webhook URL'sini kalıcı olarak geçersiz kılar. Eski URL'ye yapılan tüm istekler başarısız olur.

Yaygın Kullanım Senaryoları

Kabuk Betikleri

# Uzun süren bir görev bittiğinde bildirim gönder
./run-migration.sh && \
curl -X POST https://hook.echobell.one/d/YOUR_KEY_TOKEN \
  -H "Content-Type: application/json" \
  -d '{"title": "Migration Complete", "body": "Database migration finished successfully"}'

Cron Görevleri

# crontab içinde: yedekleme tamamlandığında bildir
0 2 * * * /usr/local/bin/backup.sh && curl -s -X POST https://hook.echobell.one/d/YOUR_KEY_TOKEN -H "Content-Type: application/json" -d '{"title": "Backup Done", "body": "Nightly backup completed"}'

Python

import requests

requests.post(
    "https://hook.echobell.one/d/YOUR_KEY_TOKEN",
    json={
        "title": "Training Complete",
        "body": f"Model accuracy: {accuracy:.2%}",
        "externalLink": "https://wandb.ai/runs/abc123"
    }
)

Node.js

await fetch("https://hook.echobell.one/d/YOUR_KEY_TOKEN", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    title: "Deploy Complete",
    body: `Version ${version} deployed to production`,
  }),
});

GitHub Actions

- name: Notify via Echobell Direct
  if: always()
  env:
    ECHOBELL_DIRECT_URL: ${{ secrets.ECHOBELL_DIRECT_URL }}
  run: |
    curl -X POST "$ECHOBELL_DIRECT_URL" \
      -H "Content-Type: application/json" \
      -d '{"title": "Build ${{ job.status }}", "body": "${{ github.repository }} @ ${{ github.sha }}"}'

En İyi Uygulamalar

Güvenlik

  • Direct anahtarı URL'lerini gizli bilgi gibi ele alın — URL'ye sahip olan herkes size bildirim gönderebilir
  • Betiklerde ve CI/CD'de anahtar token'larını saklamak için ortam değişkenleri kullanın
  • Bir anahtarın ele geçirildiğinden şüpheleniyorsanız token'ları hemen sıfırlayın
  • Ayrı ayrı iptal edebilmek için farklı servislere ayrı anahtarlar oluşturun

Düzen

  • Anahtarları açıklayıcı adlandırın — çok sayıda anahtar yönetirken kendinize teşekkür edeceksiniz
  • Her servis için bir anahtar kullanın — bildirim kaynağını belirlemeyi ve erişimi iptal etmeyi kolaylaştırır
  • Kullanılmayan anahtarları silin — saldırı yüzeyinizi küçültün

Hata Yönetimi

Direct'i betiklerinize entegre ederken HTTP durumuna değil, JSON içindeki success alanına göre dallanın:

  • 200 OK: İstek alındı. JSON gövdesini kontrol edin: success: true bildirimin tetiklendiği, success: false ise tetiklenmediği anlamına gelir. Bilinmeyen veya sıfırlanmış bir Direct anahtarı, HTTP 200 ile birlikte { "success": false, "message": "Direct key not found." } döndürür — bu bir 404 değildir.
  • 400 Bad Request: Anahtar token'ının uzunluğu hatalı. URL'yi düzeltin.
  • 405 Method Not Allowed: Anahtarda POST Only açık ve istek POST değildi. Çağrıyı POST'a çevirin ya da ayarı kapatın.

Echobell, Direct çağrılarına hız sınırı uygulamaz; bu nedenle 429 yanıtı yoktur.

Gizlilik ve Güvenlik

Neler Saklanır

  • Sunucularımızda:

    • Direct anahtarı meta verileri (ad, karma token, sahip)
    • İstek yükü, iletim için geçici olarak işlenir ve saklanır
  • Cihazınızda:

    • Bildirim içeriği (başlık, gövde)
    • Tetikleyici geçmişi ve zaman damgaları
    • Dış bağlantılar

Neler Saklanmaz

  • İstek yüklerini iletimden sonra kalıcı olarak tutmayız
  • Bildirim içeriğini analiz etmeyiz
  • Verilerinizi üçüncü taraflarla paylaşmayız

Sorun Giderme

Bildirim Alamıyorum

  1. Webhook URL'sini doğrulayın — doğrudan uygulamadan kopyalayın, fazladan boşluk olup olmadığına bakın
  2. Anahtarın hâlâ var olduğunu kontrol edin — silinmiş veya token'ı sıfırlanmış olabilir
  3. Bildirim izinlerinden emin olun — Echobell uygulamasının cihazınızda bildirim iznine ihtiyacı vardır
  4. curl ile test edin — HTTP istemcinizden kaynaklanan sorunları eleyin:
    curl -X POST https://hook.echobell.one/d/YOUR_KEY_TOKEN \
      -H "Content-Type: application/json" \
      -d '{"title": "Test", "body": "Hello from Direct"}'

İstek Hataları

  • JSON ayrıştırma hatası: Content-Type: application/json başlığının ayarlandığından ve gövdenin geçerli JSON olduğundan emin olun
  • Anahtar bulunamadı: "Direct key not found." mesajlı "success": false gövdesi, token'ın sıfırlandığını veya anahtarın silindiğini gösterir (HTTP durumu yine de 200'dür)

Sorun Devam Ediyorsa

  • Daha fazla yardım için Destek Merkezimizi ziyaret edin
  • echobell@weelone.com adresinden bize şunlarla birlikte ulaşın:
    • Sorunun açıklaması
    • Örnek istek (token gizlenmiş olarak)
    • Beklenen ve gerçekleşen davranış

Sonraki Adımlar