Tutorials

n8n + CaptchaAI: Kodsuz CAPTCHA Çözme İş Akışı

n8n iş akışınıza üç HTTP İsteği düğümü ve bir sorgulama döngüsü ekleyerek CAPTCHA çözümünü kodsuz hale getirebilirsiniz: görevi CaptchaAI'ye gönderin, sonucu periyodik sorgulayın, dönen token'ı hedef forma iletin. Zapier'in aksine n8n yerel döngü desteği sunar, bu yüzden "sonuç hazır mı?" kontrolünü tek bir IF düğümüyle otomatik tekrarlayabilirsiniz.

Bionluk veya Upwork'te client işi yürüten otomasyon geliştiricileri için önemli bir fark: ayrı bir CAPTCHA aracı eklemeden, mevcut n8n akışına dört düğüm eklersiniz. Adımlar reCAPTCHA v2 ve resim/OCR için geçerlidir; Turnstile'da yalnızca method ve sitekey değişir.


Neden n8n, Zapier değil?

İki aracı yan yana koyalım:

Özellik n8n Zapier
Döngü/yeniden deneme desteği Yerleşik (IF döngüleri, Döngü düğümü) Sınırlı (yalnızca Path'ler)
Kendi sunucunuzda barındırma Var (ücretsiz) Yok (yalnızca bulut)
Kod düğümleri Tam JavaScript Sınırlı
Maliyet Kendi barındırmanızda ücretsiz, bulutta ücretli Ücretli (görev başına)
Kurulum zorluğu Orta Kolay

Sorgulama döngüsünü kendiniz kurmak istiyorsanız n8n daha az sürtünmeyle çalışır.


n8n'de CAPTCHA çözme akışının mimarisi

Uçtan uca akış dört düğümden oluşur:

  1. Görevi CaptchaAI'ye gönderin
  2. Çözücünün başlaması için bekleyin
  3. Sonucu döngüyle sorgulayın
  4. Dönen token'ı hedef forma gönderin
Manual Trigger / Cron
    ↓
HTTP Request: Submit CAPTCHA
    ↓
Wait: 10 seconds
    ↓
Loop: Poll until solved
    ├── HTTP Request: Get result
    ├── IF: status == 1? → Exit loop
    └── Wait: 5 seconds → Loop again
    ↓
HTTP Request: Use token

Düğüm 1: CAPTCHA görevini gönderin

n8n tuvaline bir HTTP İsteği düğümü ekleyin:

  • Yöntem: POST
  • URL: https://ocr.captchaai.com/in.php
  • Gövde İçerik Türü: Form URL Encoded

Gövde parametreleri:

İsim Değer
key {{ $credentials.captchaaiApiKey }} veya API anahtarınızı doğrudan yazın
method userrecaptcha
googlekey 6Le-SITEKEY
pageurl https://example.com
json 1

CaptchaAI şu yanıtı döner:

{
  "status": 1,
  "request": "71823456"
}

request değeri görev kimliğinizdir — sonucu sorgularken bunu kullanırsınız.


Düğüm 2: İlk bekleme süresini ayarlayın

Bir Bekle düğümü ekleyin:

  • Bekleme Süresi: 10
  • Birim: Seconds

Çözücüye işlemeye başlaması için zaman tanır — erken sorgulamak gereksiz CAPCHA_NOT_READY yanıtları üretir.


Düğüm 3: Sonucu döngüyle sorgulayın

n8n döngüleri iki şekilde destekler: Döngü Öğeleri düğümüyle veya bir IF düğümünün yanlış çıktısını önceki düğüme geri bağlayarak.

Seçenek A: IF düğümüyle basit döngü

Bir HTTP İsteği düğümü ekleyin (sorgulama için):

  • Yöntem: GET
  • URL: https://ocr.captchaai.com/res.php
  • Sorgu Parametreleri: key, action=get, id={{ $json.request }}, json=1

Bunu bir IF düğümüne bağlayın: değer 1 {{ $json.status }}, işlem Equal, değer 2 1.

  • Doğru çıktı → sonraki adıma geçin (token'ı kullanın)
  • Yanlış çıktıBekle (5 saniye) → sorgulama düğümüne geri dönün

Seçenek B: Kod düğümü

Daha ince kontrol için bir Kod düğümü kullanın:

const apiKey = 'YOUR_API_KEY';
const taskId = $input.first().json.request;

for (let i = 0; i < 24; i++) {
  await new Promise(r => setTimeout(r, 5000));

  const resp = await fetch(
    `https://ocr.captchaai.com/res.php?key=${apiKey}&action=get&id=${taskId}&json=1`
  );
  const data = await resp.json();

  if (data.status === 1) {
    return [{ json: { token: data.request, taskId } }];
  }
  if (data.request !== 'CAPCHA_NOT_READY') {
    throw new Error(`CaptchaAI error: ${data.request}`);
  }
}

throw new Error(`Task ${taskId} timed out`);

Zaman aşımını kod içinde sınırlandırdığından IF döngüsünden daha öngörülebilirdir.

İpucu: 24 deneme × 5 saniye ≈ 2 dakikalık bir üst sınır verir; kendi hacminize göre yineleme sayısını artırıp azaltabilirsiniz.


Düğüm 4: Çözülen token'ı kullanın

Formu çözülen token ile göndermek için başka bir HTTP İsteği düğümü ekleyin:

  • Yöntem: POST
  • URL: https://staging.example.com/submit
  • Gövde İçerik Türü: Form URL Encoded

Gövde parametreleri, form verilerinize ek olarak g-recaptcha-response alanını içerir: değeri {{ $json.token }}.

Not: kişisel veri içeren formlarda akışın KVKK kapsamında yetkilendirilmiş bir test/QA sürecine ait olduğundan emin olun.


API anahtarını güvenli saklayın

n8n'in Kimlik Bilgileri sistemini kullanın:

  1. Kimlik Bilgileri → Kimlik Bilgisi Ekle → Başlık Kimlik Doğrulaması yolunu izleyin
  2. İsim alanına CaptchaAI API Key yazın
  3. Anahtarı burada güvenli şekilde saklayın

Kendi sunucunuzda barındırıyorsanız ortam değişkenleri de bir seçenektir:

# In your n8n environment
export CAPTCHAAI_API_KEY="your_key_here"

Düğümlerde şu ifadeyle referans verin: {{ $env.CAPTCHAAI_API_KEY }}.


Resim CAPTCHA çözme için iş akışını uyarlayın

Resim tabanlı CAPTCHA'larda Gönder düğümünü şöyle ayarlayın:

İsim Değer
method base64
body Base64 kodlu görüntü (önceki bir düğümden veya URL'den)

Görüntü URL'sini base64'e çevirmek için gönderim öncesine bir Kod düğümü ekleyin:

const imageUrl = $input.first().json.imageUrl;
const resp = await fetch(imageUrl);
const buffer = Buffer.from(await resp.arrayBuffer());
const base64 = buffer.toString('base64');

return [{ json: { imageBase64: base64 } }];

Bakiye kontrolü için ayrı bir iş akışı kurun

Belirli bir zamanlamada çalışan ayrı bir iş akışı oluşturun:

Cron (daily at 9 AM)
    ↓
HTTP Request: GET res.php?action=getbalance
    ↓
IF: balance < 5
    ↓
Slack / Email: "CaptchaAI balance low: $X.XX"

Eşiği kendi hacminize göre ayarlayın.


Sorun giderme

Sorun Neden Çözüm
Sorgulama döngüsü sonsuza kadar sürüyor Maksimum yineleme sınırı yok Bir sayaç değişkeni ekleyin, 24 yinelemeden sonra döngüyü kırın
CAPCHA_NOT_READY durmadan geliyor İlk sorgulamadan önceki bekleme süresi çok kısa İlk bekleme süresini 15-20 saniyeye çıkarın
Token bir sonraki düğümde görünmüyor İfade (expression) yolu yanlış {{ $json.token }} değerinin çıktıyla eşleştiğini kontrol edin
Kimlik bilgisi bulunamadı hatası Ortam değişkeni tanımlanmamış Env değişkenlerini ayarladıktan sonra n8n'i yeniden başlatın

SSS

Aynı iş akışında birden fazla CAPTCHA'yı işleyebilir miyim?

Evet. Gruplara Böl düğümüyle, her biri kendi gönder → sorgula → token akışına sahip öğeleri sırayla işleyebilirsiniz.

n8n Cloudflare Turnstile'ı destekliyor mu?

Evet. method parametresini turnstile olarak değiştirin ve googlekey yerine sitekey parametresini kullanın; akışın geri kalanı aynı kalır.

n8n + CaptchaAI kurulumu için hangi plan yeterli?

Test ve düşük hacimli işler için BASIC ($15/ay, 5 thread) genellikle yeterlidir; thread başına sınırsız çözüm içerdiğinden maliyetiniz sabit kalır.

Sorgulama döngüsü hiç bitmezse ne olur?

Kod düğümündeki sabit yineleme sınırı (örnekte 24) ve zaman aşımı hatası sayesinde görev çözülmezse iş akışı sonsuza kadar beklemez, hata fırlatır.


CAPTCHA çözümünü n8n iş akışınıza ekleyin

API anahtarınızı captchaai.com adresinden alın ve dört düğümü workflow'unuza ekleyin.


İlgili kılavuzlar

Bu makale için yorumlar devre dışı bırakılmıştır.