Integrations

Power Automate + CaptchaAI: Microsoft Flow CAPTCHA Çözme

Power Automate akışlarında CAPTCHA çözmenin ilk şartı bir Premium bağlayıcıdır: HTTP eylemi ücretsiz planda yer almaz. Bunun dışında akışınız CAPTCHA parametrelerini CaptchaAI API'sine gönderir, sonucu sorgular ve dönen token'ı bir sonraki adıma taşır.

Kurumsal Microsoft 365 ortamlarında IT ekipleri, reCAPTCHA v2 korumalı tedarikçi portallarına bağlanan akışları kod yazmadan kurmak ister. Akış üç aşamada çalışır:

  • CAPTCHA parametrelerini CaptchaAI'ye gönderme
  • Sonucu sorgulama
  • Token'ı forma veya bir sonraki eyleme aktarma

Örnek Senaryo: Tedarikçi Portalından CAPTCHA Çözme

Bir üretim şirketinin satın alma ekibi her sabah tedarikçi portalından güncel fiyat listelerini çekmek istiyor, ancak portal girişte reCAPTCHA v2 gösteriyor. Manuel çözüm yerine Power Automate akışı şunu yapar:

  • CAPTCHA parametrelerini alır (sitekey, pageurl)
  • Bunları CaptchaAI'ye gönderir
  • Çözümü sorgular
  • Dönen token'ı kullanarak portala giriş yapar ve veriyi çeker

Aynı kalıp; devlet portalları, sigorta sistemleri veya iç onay formları gibi reCAPTCHA v2 ile korunan her tekrarlayan işte çalışır. Otomasyonu yalnızca yetkili olduğunuz sistemlerde çalıştırın; kişisel veri işliyorsanız KVKK yükümlülüklerinizi gözden geçirin.

Başlamadan Önce

Akışı kurmadan önce şunların hazır olması gerekir:

  • Power Automate Premium bağlayıcılara erişimi olan bir lisans
  • CaptchaAI API anahtarınız ve hesabınızda yeterli bakiye
  • Test edeceğiniz formun sitekey ve pageurl değerleri

Adım 1: Power Automate Akışını Oluşturun

Power Automate'te, Manuel tetikleyici (veya seçtiğiniz herhangi bir tetikleyici) ile Anında bulut akışı oluşturun.

Tetikleyiciye Giriş Parametreleri Ekleme

Manuel tetikleyiciye iki metin girişi ekleyin:

  • sitekey — reCAPTCHA v2 sitekey değeri
  • pageurl — CAPTCHA içeren sayfanın URL'si

Adım 2: CAPTCHA Görevini CaptchaAI'ye Gönderin

HTTP eylemi ekleyin (Premium bağlayıcı gerektirir):

  • Yöntem: GET
  • URI: https://ocr.captchaai.com/in.php

Sorgu parametreleri:

  • key — CaptchaAI API anahtarınız
  • methoduserrecaptcha
  • googlekey@{triggerBody()['text']} (sitekey girişi)
  • pageurl@{triggerBody()['text_1']} (pageurl girişi)
  • json1

API anahtarını akış tanımına sabit kodlamak yerine Power Automate'in Ortam Değişkenleri veya Azure Key Vault bağlayıcısını kullanın.

Yanıtı ayrıştırın: HTTP eyleminden sonra bir JSON Ayrıştırma eylemi ekleyin. Şema:

{
  "type": "object",
  "properties": {
    "status": { "type": "integer" },
    "request": { "type": "string" }
  }
}

İçerik: @{body('HTTP')}

Adım 3: Gönderim Yanıtını Doğrulayın

Koşul eylemi ekleyin: @{body('Parse_JSON')?['status']} değeri 1'e eşittir.

Hayır dalında (gönderim başarısız), durumu "Başarısız" olan ve Submit error: @{body('Parse_JSON')?['request']} mesajını içeren bir Sonlandır eylemi ekleyin. Evet dalında sorgulama döngüsüne devam edin.

Adım 4: Sorgulama Döngüsünü Kurun

"Evet" dalının içine, koşulu @{variables('solveStatus')} değeri pending'e eşit değildir olan bir Do until (bitene kadar yap) döngüsü ekleyin. Döngüden önce solveStatus (Dize) = pending ve solvedToken (Dize) = boş olmak üzere iki değişken başlatın.

Do until döngüsüne şu eylemleri sırayla ekleyin:

4a. Gecikme

Gecikme eylemi ekleyin: 5 saniye.

4b. HTTP — Sonucu Sorgulayın

  • Yöntem: GET
  • URI: https://ocr.captchaai.com/res.php

Sorgu parametreleri:

  • key — CaptchaAI API anahtarınız
  • actionget
  • id@{body('Parse_JSON')?['request']}
  • json1

4c. JSON Ayrıştırma — Sorgulama Yanıtı

Adım 2 ile aynı şemayı kullanın.

4d. Koşul — Durumu Kontrol Edin

Koşul: @{body('Parse_JSON_2')?['status']} değeri 1'e eşittir.

Evet dalı (çözüldü):

  • solvedToken değişkenini şuna ayarlayın: @{body('Parse_JSON_2')?['request']}
  • solveStatus değişkenini şuna ayarlayın: solved

Hayır dalı:

  • İkinci bir koşul ekleyin: @{body('Parse_JSON_2')?['request']} değeri CAPCHA_NOT_READY'e eşit değil
  • Doğruysa (hata oluştu), solveStatus değişkenini error yapın
  • Yanlışsa (hâlâ bekliyor), hiçbir şey yapmayın — döngü bir sonraki yinelemeye geçer

Do until döngüsünün sınırlarını 20 yinelemeye ve PT3M (3 dakika) zaman aşımına ayarlayın.

Adım 5: Çözülen Token'ı Formda Kullanın

Döngüden sonra @{variables('solveStatus')} değerini kontrol eden bir Koşul ekleyin.

"solved" ise, @{variables('solvedToken')} değerini formu gönderen HTTP POST'ta kullanın ya da e-posta, Teams mesajı veya başka bir bağlayıcı üzerinden iletin:

  • Yöntem: POST
  • URI: Hedef form URL'si
  • Gövde: {"g-recaptcha-response": "@{variables('solvedToken')}", "other_field": "value"}

"solved" değilse, Teams veya e-posta üzerinden hata bildirimi gönderin.

Bu akışı bir Power Apps ekranındaki düğmeden de tetikleyebilirsiniz: Power Apps'teki Power Automate bağlayıcısı sitekey/pageurl'i parametre geçirir, token'ı döndürür.

Akışın Uçtan Uca Görünümü

[Manual Trigger (sitekey, pageurl)]
    ↓
[Initialize Variables: solveStatus, solvedToken]
    ↓
[HTTP: Submit to CaptchaAI /in.php]
    ↓
[Parse JSON]
    ↓
[Condition: status = 1?]
    ↓ Yes
[Do Until: solveStatus ≠ pending]
    ├── [Delay: 5 seconds]
    ├── [HTTP: Poll CaptchaAI /res.php]
    ├── [Parse JSON]
    └── [Condition: Solved or Error?]
    ↓
[Condition: solveStatus = solved?]
    ↓ Yes
[HTTP: Submit form with token]
    ↓
[Compose: Success response]

Sorun Giderme

HTTP eylemi menüde görünmüyor

Ücretsiz plan Premium bağlayıcıları içermez. Power Automate Premium'a yükseltin veya özel bir bağlayıcı kullanın.

JSON Ayrıştırma eylemi hata veriyor

Yanıt gövdesi düz metin döndü, JSON değil. Sorgu parametrelerinde json=1 olduğundan emin olun.

Döngü hiç bitmiyor

solveStatus değişkeni güncellenmiyor. Değişken Ayarlama eylemlerindeki değişken adlarının birebir eşleştiğini kontrol edin.

CaptchaAI'den 403 hatası dönüyor

IP kısıtlaması veya hatalı API anahtarı söz konusu olabilir. API anahtarını doğrulayın; hesabınızda IP beyaz listesi açık mı kontrol edin.

Akış zaman aşımına uğruyor

30 günlük akış zaman aşımı yeterlidir, ama tek eylem 2 dakikada zaman aşımına uğrar. Do until eylemindeki PT3M zaman aşımı bunu karşılar; gerekirse artırın.

Sık Sorulan Sorular

Hangi CaptchaAI planı Power Automate akışına yeter?

Fatura eşzamanlı thread sayısına göre kesilir, çözüm başına değil. Birkaç CAPTCHA'yı aynı anda gönderen tek bir akış için BASIC ($15/ay, 5 thread) yeterlidir; paralel akış arttıkça daha yüksek thread'li bir plana geçersiniz. Fiyatlar USD olduğundan TL dalgalanmasından etkilenmeyen, öngörülebilir bir maliyet elde edersiniz.

reCAPTCHA v2 dışında hangi CAPTCHA türlerini çözebilirim?

Aynı gönder-sorgula kalıbı diğer türlerde de çalışır; method değerini Cloudflare Turnstile için turnstile, GeeTest v3 için geetest, Görüntü/OCR için post yapın. hCaptcha ve FunCaptcha desteklenmiyor.

Sorgulama döngüsü zaman aşımına uğrarsa ne yapmalıyım?

Önce solveStatus değişkeninin her yinelemede güncellendiğini doğrulayın — çoğu "hiç bitmeyen döngü" vakası budur. Ardından yineleme sayısını (20) veya Do until zaman aşımını (PT3M) gevşetin: reCAPTCHA v2 CaptchaAI'de 60 saniyenin altında çözülür, ama 5 saniyelik sorgulama aralığı dar geliyorsa 8–10 saniyeye çıkarabilirsiniz.

Token hedef formda neden reddediliyor?

İki yaygın neden var: token'ın ömrü dolmuş olabilir (formu solvedToken alınır alınmaz gönderin) veya pageurl/googlekey değerleri hedef sayfayla birebir eşleşmiyordur.

Premium bağlayıcı olmadan bu akışı kurabilir miyim?

Doğrudan değil — HTTP eylemi Premium bağlayıcı gerektirir. Ücretsiz plandaysanız özel bir bağlayıcı tanımlayabilir veya çağrıyı Azure İşlevi üzerinden yönlendirip Power Automate'i yalnızca sonucu almak için kullanabilirsiniz.

İlgili Makaleler

Sonraki Adımlar: Power Automate'te CAPTCHA Çözümünü Devreye Alın

Power Automate iş akışlarınıza CAPTCHA çözümünü ekleyin — CaptchaAI API anahtarınızı alın ve akışı yukarıdaki adımlarla kurun.

İlgili kılavuzlar:

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