Skip to main content
Dokümantasyon
ÖĞRENME MERKEZİ

Kapsamlı rehberler, eğitimler ve API dokümantasyonuyla içerik moderasyonunda uzmanlaşın

Hızlı Bağlantılar

Kimlik Doğrulama ve API Anahtarları

Discuse API, her isteği bir API anahtarıyla doğrular. Anahtarı X-API-Key istek üst bilgisinde (veya JSON gövdesinde api_key alanı olarak) gönderin. Anahtarlar disc_ ön ekiyle başlar, tek bir projeye bağlıdır ve yalnızca oluşturuldukları anda bir kez tam olarak gösterilir. Bu kılavuzda anahtarları nasıl alacağınız, kullanacağınız, güvenceye alacağınız ve yenileyeceğiniz anlatılır.

Discuse kimlik doğrulaması nasıl çalışır?

Her API çağrısı geçerli bir API anahtarı içermelidir. Discuse bu anahtarı şu amaçlarla kullanır:

  • Kullanımı projenizin kotasına göre izlemek
  • Kötüye kullanımı önlemek için anahtar bazında hız sınırı uygulamak
  • İstekleri doğru projeye ve proje ayarlarına bağlamak
  • Hesabınızın kaynaklarına erişimi kontrol etmek

API Anahtarınızı Alma

1. Adım: Hesap Oluşturun

Henüz yapmadıysanız discuse.com adresinden bir Discuse hesabı oluşturun. Aylık belirli sayıda API isteğinin yanı sıra metin, spam, dil ve görsel kontrollerine erişim içeren ücretsiz Basic planla başlayabilirsiniz. Güncel plan bazlı limitler için fiyatlandırma sayfasına bakın.

2. Adım: Kontrol Paneline Erişin

Giriş yaptıktan sonra kontrol panelinize gidin. Gezinme menüsünde "API Keys" veya "Developer" bölümünü arayın.

3. Adım: Yeni Bir Anahtar Oluşturun

"Create New API Key" seçeneğine tıklayın ve isteğe bağlı olarak anahtar için bir ad veya açıklama girin. Birden fazla anahtar oluşturursanız, bu her bir anahtarın amacını ayırt etmenize yardımcı olur.

Yeni API anahtarınız yalnızca bir kez gösterilir. Hemen kopyalayın ve güvenli bir yerde saklayın; anahtarın tamamını tekrar görüntüleyemezsiniz.

API Anahtarınızı Kullanma

Her istekte API anahtarınızı X-API-Key üst bilgisine ekleyin:

curl -X POST https://api.discuse.com/api/v2/check \
  -H "Content-Type: application/json" \
  -H "X-API-Key: disc_aB3dEf6GhIjKlMnOpQrStUvWxYz012345" \
  -d '{
    "content": {
      "text": "Content to analyze"
    }
  }'

Alternatif olarak anahtarı üst bilgi yerine JSON gövdesinin içinde api_key alanı olarak da gönderebilirsiniz; ancak anahtarın istek gövdesi günlüklerine düşmemesi için üst bilgi kullanımı tercih edilir.

JavaScript Örneği

const response = await fetch('https://api.discuse.com/api/v2/check', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'X-API-Key': process.env.DISCUSE_API_KEY
  },
  body: JSON.stringify({
    content: { text: 'Content to analyze' }
  })
});

Python Örneği

import requests
import os

response = requests.post(
    'https://api.discuse.com/api/v2/check',
    headers={
        'Content-Type': 'application/json',
        'X-API-Key': os.environ['DISCUSE_API_KEY']
    },
    json={
        'content': {'text': 'Content to analyze'}
    }
)

API Anahtarı Güvenliği İçin En İyi Uygulamalar

Anahtarları Asla İstemci Tarafı Kodda Açığa Çıkarmayın

API anahtarları, tarayıcıda çalışan JavaScript koduna asla eklenmemelidir. İstemci tarafı kod, sayfa kaynağını görüntüleyen herkes tarafından görülebilir.

// WRONG - Don't do this!
const API_KEY = 'disc_aB3dEf6...'; // Exposed in browser

// CORRECT - Use a backend proxy
const response = await fetch('/api/moderate', {
  method: 'POST',
  body: JSON.stringify({ text: userInput })
});

Ortam Değişkenleri Kullanın

API anahtarlarını kod tabanınızda değil, ortam değişkenlerinde saklayın:

# .env file (add to .gitignore!)
DISCUSE_API_KEY=disc_aB3dEf6GhIjKlMnOpQrStUvWxYz012345
// Access in Node.js
const apiKey = process.env.DISCUSE_API_KEY;

Anahtarları Düzenli Olarak Yenileyin

API anahtarlarınızı, özellikle ele geçirilmiş olabileceklerinden şüpheleniyorsanız, düzenli aralıklarla yenileyin:

  1. Yeni bir API anahtarı oluşturun
  2. Uygulamanızı yeni anahtarı kullanacak şekilde güncelleyin
  3. Her şeyin doğru çalıştığını doğrulayın
  4. Eski anahtarı iptal edin

Not: Doğrulanmış anahtarlar önbelleğe alındığı için iptal edilen bir anahtar yaklaşık 5 dakikaya kadar kullanılabilir durumda kalabilir. Anında geçiş beklemek yerine yenileme işlemlerini bu kısa örtüşmeyi dikkate alarak planlayın.

Farklı Ortamlar İçin Ayrı Anahtarlar Kullanın

Geliştirme, hazırlık ve üretim ortamları için farklı API anahtarları oluşturun:

Ortam Anahtarın Amacı
Geliştirme Test ve yerel geliştirme
Hazırlık Üretim öncesi test
Üretim Canlı uygulama trafiği

Bu sayede ele geçirilmiş bir anahtarı, diğer ortamları etkilemeden iptal edebilirsiniz.

Hız sınırlandırması nasıl çalışır?

Hız sınırlandırması plan bazında değil, API anahtarı bazında uygulanır. Her anahtarın, oluşturulurken belirlenen dakika başına istek (RPM) limiti vardır; siz bir değer belirtmezseniz varsayılan olarak dakikada 60 istek uygulanır. Aynı hesaptaki farklı anahtarlar farklı limitlere sahip olabilir; böylece yüksek trafik işleyen bir servise, tek seferlik bir entegrasyondan daha yüksek RPM verebilirsiniz.

Bir anahtar RPM limitini aştığında istek, hız limitinin aşıldığını belirten bir message içeren HTTP 429 Too Many Requests durumuyla başarısız olur. Hız sınırı sayaçları, kayan bir dakikalık pencereye göre sıfırlanır.

Hız sınırlarını yönetme

429 durumunda (ve geçici 5xx durumlarında) geri çekilip yeniden deneyin. Pencere bir dakika olduğu için, yaklaşık bir saniyeden başlayıp artan üstel geri çekilme yöntemi iyi sonuç verir:

async function checkWithRetry(content, maxRetries = 3) {
  for (let attempt = 0; attempt < maxRetries; attempt++) {
    const response = await fetch('https://api.discuse.com/api/v2/check', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
        'X-API-Key': process.env.DISCUSE_API_KEY
      },
      body: JSON.stringify({ content })
    });

    if (response.status === 429 || response.status >= 500) {
      const delay = 1000 * Math.pow(2, attempt); // 1s, 2s, 4s
      await new Promise(resolve => setTimeout(resolve, delay));
      continue;
    }

    return response.json();
  }
  throw new Error('Max retries exceeded');
}

Hangi hata yanıtlarını alabilirim?

Durum HTTP durumu
Hatalı biçimlendirilmiş istek (boş içerik, 10.000 karakteri aşan metin, çok fazla URL) 400 istek doğrulama
Eksik veya geçersiz API anahtarı 401
Anahtar için hız limiti aşıldı 429
Faturalandırma dönemi kotası tükendi 200 ve beraberinde message ile usage (hata durumu değildir)

Kota tükenmesi özellikle bir HTTP hatası olarak ele alınmaz: /api/v2/check yanıtı yine 200 döndürür; has_violations: false, tükenen kotayı açıklayan bir message ve api_requests_remaining: 0 değerini gösteren bir usage nesnesi içerir. Durum koduna güvenmek yerine bu alanları kontrol edin. Kimlik doğrulama hataları 401, hız sınırları 429, istek doğrulama hataları ise 400 döndürür. Tam liste için Hata ve Yanıt Kodları referansına bakın.

Birden Fazla Anahtarı Yönetme

Daha büyük ekipler veya karmaşık uygulamalar için birden fazla API anahtarına ihtiyaç duyabilirsiniz:

Birden Fazla Anahtar İçin Kullanım Senaryoları

  1. Ortam bazlı anahtarlar: Geliştirme, hazırlık ve üretim için ayrı anahtarlar
  2. Servis bazlı anahtarlar: Farklı mikro servisler için farklı anahtarlar
  3. Ekip bazlı anahtarlar: İç faturalandırma için kullanımı ekibe göre izole etme
  4. Geçici anahtarlar: Yükleniciler veya entegrasyonlar için kısa ömürlü anahtarlar

Anahtar Yönetimi İçin En İyi Uygulamalar

  • Anahtarlara açıklayıcı adlar verin: "Production - User Service", "Staging - Backend"
  • Anahtar kullanımını belgeleyin: Hangi anahtarın nerede kullanıldığını kaydedin
  • Uyarılar kurun: Olağan dışı kullanım kalıplarını izleyin
  • Düzenli denetimler yapın: Kullanılmayan anahtarları üç ayda bir gözden geçirip temizleyin

Sonraki Adımlar

Discuse Ekibi tarafından yazıldı · Son güncelleme June 2026

İlgili Makaleler

İçerik Moderasyonu Nedir?

İçerik moderasyonunun temellerini ve platformunuz için neden önemli olduğunu anlayın

Hızlı Başlangıç Kılavuzu

Discuse API ile 5 dakikadan kısa sürede çalışmaya başlayın

Hata ve Yanıt Kodları

HTTP durumları, kota tükenmesi 200 yanıtı ve API hatalarını doğru şekilde ele alma