---
title: Direct Bildirimleri - Anında Uyarılar için Kişisel API Anahtarları
sidebarTitle: Direct
description: 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

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ı?

| | Direct | Kanallar |
|---|---|---|
| **Kurulum** | Anahtar oluşturun, URL'yi kullanın | Kanal oluşturun, şablonları yapılandırın |
| **Kitle** | Yalnızca siz | Abone olan herkes |
| **Şablonlar** | Yok — başlık/gövdeyi her istekte siz belirtirsiniz | Değişkenlerle yapılandırılabilir şablonlar |
| **Koşullar** | Yok | Koşullu iletim desteklenir |
| **En uygun kullanım** | Kişisel betikler, hızlı uyarılar, otomasyon | Paylaşı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:

```http
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:

```http
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:

```http
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:

```json
{
  "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.

| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
| `title` | string | Hayır | Bildirim başlığı. Belirtilmezse varsayılan olarak "Direct Notification" kullanılır. |
| `body` | string | Hayır | Bildirim gövde metni. |
| `externalLink` | string | Hayır | Bildirim kaydında gösterilen tıklanabilir bağlantı. |
| `notificationType` | string | Hayır | Bildirimin aciliyet düzeyi. `active`, `time-sensitive` veya `calling` değerlerini kabul eder. Varsayılan `active`. Bkz. [Bildirim Türleri](#bildirim-türleri). |

### Bildirim Türleri

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

| Tür | Açıklama |
|---|---|
| `active` | Standart bildirim, normal şekilde iletilir. Varsayılan budur. |
| `time-sensitive` | Odak modlarını aşabilen yüksek öncelikli bildirim. |
| `calling` | Kritik durumlar için arama benzeri uyarı. **Etkin bir premium aboneliği gerektirir.** Premium olmadan `time-sensitive` düzeyine düşer. |

Bildirim türlü örnek:

```http
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:

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

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

```json
{
  "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

```bash
# 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

```bash
# 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

```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

```javascript
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

```yaml
- 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](#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:
   ```bash
   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](/docs/support) 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

- **[Webhook Entegrasyonu](/docs/webhook)** — Kanallarla paylaşılan, şablonlu bildirimler için
- **[Şablon Sözdizimi](/docs/template)** — Kanal bildirim şablonlarını öğrenin
- **[E-posta Tetikleyicileri](/docs/email-trigger)** — Bildirimleri e-postayla tetikleyin
- **[Entegrasyonları Keşfedin](/docs/features)** — Halihazırda kullandığınız araçlara bağlanın
