GELİŞTİRİCİ REHBERİ

İlk formunuzu bağlayın.

Standart HTML formu veya sunucudan JSON isteği. Aynı uç nokta, aynı gelen kutusu.

01 / Projenizi hazırlayın

Panele giriş yapın, bir proje oluşturun ve bildirim alıcılarını seçin. Web sitenizin origin adresini, örneğin https://siteniz.com, izin verilen alan adlarına ekleyin. www kullanıyorsanız onu da ayrı tanımlayın.

Tarayıcı için af_pk_ ile başlayan açık form anahtarını kullanın. af_sk_ ile başlayan sunucu anahtarını yalnızca sunucunuzda ortam değişkeninde saklayın; HTML veya istemci JavaScript’ine koymayın.

02 / HTML formunu bağlayın

Aşağıdaki örnekte proje anahtarını ve Turnstile site anahtarını paneldeki entegrasyon bilgilerinizle değiştirin. Turnstile ayarlarında formu barındıran alan adının izinli olması gerekir.

HTML + Turnstile
<script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async defer></script>
<form action="https://www.anesflow.com/v1/forms" method="POST">
  <input type="hidden" name="_key" value="af_pk_PROJE_ANAHTARI">
  <label>E-posta <input name="email" type="email" required></label>
  <label>Mesaj <textarea name="message" required></textarea></label>
  <input name="_honey" tabindex="-1" autocomplete="off" hidden>
  <div class="cf-turnstile" data-sitekey="TURNSTILE_SITE_KEY" data-action="anes_flow"></div>
  <button type="submit">Gönder</button>
</form>

Başarılı tarayıcı gönderimi varsayılan teşekkür sayfasına yönlendirilir. Kendi teşekkür sayfanızın adresini proje ayarlarında tanımlayabilirsiniz. CSP kullanıyorsanız form hedefi için Flow origin’ine, Turnstile için Cloudflare script ve frame kaynaklarına izin verin.

03 / Sunucudan gönderin

ANES_FLOW_SERVER_KEY ortam değişkenini sunucu anahtarınızla tanımlayın. Sunucu isteklerinde Turnstile gerekmez. Bu örnek terminal veya backend içindir.

cURL · JSON
curl 'https://www.anesflow.com/v1/forms' \
  -H "X-Api-Key: $ANES_FLOW_SERVER_KEY" \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: contact-request-001' \
  -d '{"email":"[email protected]","message":"Merhaba"}'

Idempotency-Key, aynı gönderimi yeniden denediğinizde çift kayıt oluşmasını engeller. Her yeni form için farklı, 8–100 karakterlik harf, rakam, alt çizgi veya tire içeren bir değer kullanın. Tekrar denemede aynı anahtarı ve aynı içeriği koruyun.

04 / Yanıtları işleyin

JSON isteğinde başarılı yanıt { "ok": true, "id": "…", "duplicate": false } biçimindedir. Kayıt alınması, bildirimin alıcıya teslim edildiği anlamına gelmez. Bildirim durumunu panelden takip edin.

API yanıt kodları
KodAnlamı
202Form alındı ve bildirimler sıraya eklendi.
200Aynı idempotency anahtarıyla önceki kayıt döndürüldü.
400 / 401 / 403Alanları, anahtarı, izin verilen origin’i ve bot doğrulamasını kontrol edin.
409Aynı idempotency anahtarı farklı bir içerikle kullanıldı.
413 / 415Gönderi boyutu veya içerik türü uygun değil.
422Dosya güvenlik taramasından geçmedi; form kaydedilmedi.
429İstek sınırı veya planınızın aylık gönderim kotası doldu; kota dönem başında yenilenir.
503Bot doğrulama veya dosya tarama servisine ulaşılamadı; form kaydedilmedi, biraz sonra tekrar deneyin.
507Dosya depolama sınırı doldu; form kaydedilmedi.

JSON ve URL encoded alanlar için sınır 32 KB, alan sayısı 1–40, tek alan değeri en fazla 4.000 karakterdir. HTML formu yerine tarayıcıda JavaScript kullanıyorsanız aynı açık anahtarı ve güncel Turnstile token’ını gönderin; her yeni doğrulamada token’ı yenileyin.

05 / Dosya ekleyin

Dosya eki planınızda açıksa proje ayarlarında dosya yüklemeyi etkinleştirin. Formda enctype="multipart/form-data" ve <input type="file" name="files" multiple> kullanın. İstek başına en fazla 3 PDF, PNG, JPEG veya TXT dosyası desteklenir. Dosya başına boyut ve toplam depolama sınırı planınıza bağlıdır.

Dosyalar kaydedilmeden önce antivirüs taramasından geçer; eşleşme bulunan dosyayla gönderilen form 422 ile reddedilir. Dosyalar form kaydına bağlı tutulur ve yetkili panel hesabıyla indirilir. Tarama ve tür doğrulaması zararsızlığın kesin kanıtı değildir.

BİR SONRAKİ FORMUNUZ İÇİN

Formu siz tasarlayın.
Akışını bize bırakın.

Erişim talep et

Bir sorunuz mu var? Rehbere göz atın.