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.
<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 '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.
| Kod | Anlamı |
|---|---|
| 202 | Form alındı ve bildirimler sıraya eklendi. |
| 200 | Aynı idempotency anahtarıyla önceki kayıt döndürüldü. |
| 400 / 401 / 403 | Alanları, anahtarı, izin verilen origin’i ve bot doğrulamasını kontrol edin. |
| 409 | Aynı idempotency anahtarı farklı bir içerikle kullanıldı. |
| 413 / 415 | Gönderi boyutu veya içerik türü uygun değil. |
| 422 | Dosya 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. |
| 503 | Bot doğrulama veya dosya tarama servisine ulaşılamadı; form kaydedilmedi, biraz sonra tekrar deneyin. |
| 507 | Dosya 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.
Bir sorunuz mu var? Rehbere göz atın.