Sorun Giderme

Yaygın reCAPTCHA Görünmez Hataları ve Düzeltmeleri

Görünmez reCAPTCHA onay kutusunu kaldırır ancak otomasyon için yeni hata modları ekler. En büyük sorunlar görünmez widget'ın hiç algılanmaması, geri çağırma işlevinin eksik olması, süresi dolmuş belirteçlerin gönderilmesi ve görünmez parametreler gerektiğinde v2 standart parametrelerinin kullanılması.

Bu kılavuz, tüm yaygın hata modellerini tam düzeltmeyle birlikte kapsar. Görünmez reCAPTCHA'nın nasıl çalıştığına dair arka plana ihtiyacınız varsa burayı okuyunreCAPTCHA Invisible Nasıl Çalışır ve Nasıl Çözülür?Birinci.


Hızlı hata referansı

Hata Sebep Düzeltme
ERROR_WRONG_GOOGLEKEY Farklı bir alan adına ait yanlış site anahtarı veya site anahtarı Site anahtarını görünmez widget div'den veya grecaptcha.render() çağrısından çıkarın
ERROR_PAGEURL URL uyuşmazlığı — iframe URL'si yerine gönderilen ana sayfa URL'si Görünmez widget'ın yüklendiği yerin tam URL'sini kullanın
ERROR_CAPTCHA_UNSOLVABLE Google görevi imkansız olarak işaretledi Yeni proxy ve çerezlerle tekrar deneyin; sitenin v3'e geçip geçmediğini kontrol edin
ERROR_BAD_TOKEN_OR_PAGEURL Belirteç hedef site tarafından reddedildi Sayfa URL'sinin tam olarak eşleştiğini doğrulayın; gizli alan değil, geri arama yoluyla enjekte edin
CAPCHA_NOT_READY Görev hâlâ işleniyor Her 5 saniyede bir oylamaya devam edin; görünmez çözümler 10-30 saniye sürer
ERROR_KEY_DOES_NOT_EXIST Geçersiz CaptchaAI API anahtarı Anahtarı şu saatte kontrol edin:captchaai.com/account
Jeton kabul edildi ancak form başarısız oldu Jeton enjeksiyonundan sonra geri arama yürütülmedi Belirteçle data-callback işlevini bulun ve çağırın

Hata 1: Sayfada görünmez reCAPTCHA algılanmıyor

Görünmez reCAPTCHA'da görünür bir onay kutusu yoktur. Kazıyıcınız bunu tespit etmezse captcha korumalı istekler, form gönderme hataları veya yönlendirmelerle sessizce başarısız olur.

Görünmez reCAPTCHA nasıl tespit edilir

Sayfa HTML'sinde şu kalıpları arayın:

<!-- Pattern 1: div with data-size="invisible" -->
<div class="g-recaptcha" data-sitekey="6LdKlZEU..."
     data-size="invisible"
     data-callback="onSubmit"></div>

<!-- Pattern 2: button with data-sitekey and invisible size -->
<button class="g-recaptcha"
        data-sitekey="6LdKlZEU..."
        data-callback="onSubmit"
        data-action="submit">Submit</button>

<!-- Pattern 3: programmatic render with size: invisible -->
<script>
  grecaptcha.render('submit-btn', {
    sitekey: '6LdKlZEU...',
    callback: onSubmit,
    size: 'invisible'
  });
</script>

Algılama komut dosyası (Python):

import requests
from bs4 import BeautifulSoup
import re

def detect_invisible_recaptcha(url):
    resp = requests.get(url)
    soup = BeautifulSoup(resp.text, "html.parser")

    # Check for data-size="invisible"
    widget = soup.find("div", {"data-size": "invisible", "class": "g-recaptcha"})
    if widget:
        return {
            "type": "invisible",
            "sitekey": widget.get("data-sitekey"),
            "callback": widget.get("data-callback")
        }

    # Check for programmatic render with invisible
    scripts = soup.find_all("script")
    for script in scripts:
        if script.string and "size" in str(script.string) and "invisible" in str(script.string):
            key_match = re.search(r"sitekey['\"]?\s*[:=]\s*['\"]([^'\"]+)", script.string)
            if key_match:
                return {
                    "type": "invisible-programmatic",
                    "sitekey": key_match.group(1),
                    "callback": "check grecaptcha.render() call"
                }

    return None

Algılama komut dosyası (Node.js):

const axios = require("axios");
const cheerio = require("cheerio");

async function detectInvisibleRecaptcha(url) {
  const { data } = await axios.get(url);
  const $ = cheerio.load(data);

  // Check for data-size="invisible"
  const widget = $(".g-recaptcha[data-size='invisible']");
  if (widget.length) {
    return {
      type: "invisible",
      sitekey: widget.attr("data-sitekey"),
      callback: widget.attr("data-callback"),
    };
  }

  // Check script tags for programmatic invisible render
  const scriptContent = $("script")
    .map((_, el) => $(el).html())
    .get()
    .join("\n");
  if (scriptContent.includes("invisible")) {
    const keyMatch = scriptContent.match(/sitekey['"]?\s*[:=]\s*['"]([^'"]+)/);
    if (keyMatch) {
      return {
        type: "invisible-programmatic",
        sitekey: keyMatch[1],
        callback: "check grecaptcha.render() call",
      };
    }
  }

  return null;
}

Hata 2: Yanlış site anahtarı — ERROR_WRONG_GOOGLEKEY

Bu durum, hedef sayfadaki görünmez reCAPTCHA widget'ıyla eşleşmeyen bir site anahtarı gönderdiğinizde meydana gelir. Yaygın nedenler:

  • Site anahtarını farklı bir sayfadaki v2 onay kutusundan kopyaladım
  • Farklı bir reCAPTCHA sürümünün bağlantı URL'sinden bir site anahtarı kullanıldı
  • Sayfada birden fazla reCAPTCHA widget'ı var ve yanlış olanı seçmişsiniz

Düzeltme: Doğru görünmez site anahtarını çıkarın

import requests
from bs4 import BeautifulSoup

def get_invisible_sitekey(url):
    resp = requests.get(url)
    soup = BeautifulSoup(resp.text, "html.parser")

    # Priority 1: invisible widget
    widget = soup.find(attrs={"data-size": "invisible", "class": "g-recaptcha"})
    if widget:
        return widget["data-sitekey"]

    # Priority 2: any g-recaptcha div (may be invisible without data-size)
    widget = soup.find(class_="g-recaptcha")
    if widget and widget.get("data-sitekey"):
        return widget["data-sitekey"]

    return None

sitekey = get_invisible_sitekey("https://staging.example.com/qa-login")
print(f"Sitekey: {sitekey}")

Hata 3: Geri arama yürütülmedi - form gönderiliyor ancak hiçbir şey olmuyor

Bu, geliştiricilerin gözden kaçırdığı bir numaralı görünmez reCAPTCHA hatasıdır. Belirtecin g-recaptcha-response'ye enjekte edilmesinin yeterli olduğu v2 onay kutusunun aksine, görünmez reCAPTCHA neredeyse her zaman JavaScript geri çağırma işlevini kullanır. Belirteci enjekte ederseniz ancak geri aramayı çağırmazsanız form hiçbir zaman işlenmez.

Geri arama akışı nasıl çalışır?

  1. grecaptcha.execute() görünmez mücadeleyi başlatıyor
  2. Çözdükten sonra Google, data-callback'de belirtilen işlevi çağırır.
  3. Bu geri çağırma işlevi formu gönderir veya API çağrısını yapar

Düzeltme: Geri aramayı bulun ve yürütün

1. Adım — Geri arama adını tanımlayın:

# From HTML: data-callback="onSubmit"
# From JS: callback: onSubmit
# From grecaptcha.render: second argument with callback property

Adım 2 — Belirteci enjekte edin VE geri aramayı çağırın (Selenyum):

from selenium import webdriver
import requests
import time

driver = webdriver.Chrome()
driver.get("https://example.com/form")

# Get sitekey
sitekey = driver.find_element("css selector", ".g-recaptcha").get_attribute("data-sitekey")
callback_name = driver.find_element("css selector", ".g-recaptcha").get_attribute("data-callback")

# Solve with CaptchaAI
task_id = requests.get("https://ocr.captchaai.com/in.php", params={
    "key": "YOUR_API_KEY",
    "method": "userrecaptcha",
    "googlekey": sitekey,
    "pageurl": driver.current_url,
    "invisible": 1
}).text.split("|")[1]

# Poll for result
token = None
for _ in range(60):
    time.sleep(5)
    resp = requests.get("https://ocr.captchaai.com/res.php", params={
        "key": "YOUR_API_KEY",
        "action": "get",
        "id": task_id
    }).text
    if resp.startswith("OK|"):
        token = resp.split("|")[1]
        break

# Inject token into the response field
driver.execute_script(
    f'document.getElementById("g-recaptcha-response").value = "{token}";'
)

# CRITICAL: Call the callback function
driver.execute_script(f'{callback_name}("{token}");')

2. Adım — Belirteci enjekte edin VE geri aramayı çağırın (Puppeteer):

const puppeteer = require("puppeteer");
const axios = require("axios");

(async () => {
  const browser = await puppeteer.launch({ headless: "new" });
  const page = await browser.newPage();
  await page.goto("https://example.com/form");

  // Get sitekey and callback
  const { sitekey, callback } = await page.evaluate(() => {
    const el = document.querySelector(".g-recaptcha[data-size='invisible']");
    return {
      sitekey: el?.getAttribute("data-sitekey"),
      callback: el?.getAttribute("data-callback"),
    };
  });

  // Submit to CaptchaAI
  const submitResp = await axios.get("https://ocr.captchaai.com/in.php", {
    params: {
      key: "YOUR_API_KEY",
      method: "userrecaptcha",
      googlekey: sitekey,
      pageurl: page.url(),
      invisible: 1,
    },
  });
  const taskId = submitResp.data.split("|")[1];

  // Poll for result
  let token;
  for (let i = 0; i < 60; i++) {
    await new Promise((r) => setTimeout(r, 5000));
    const result = await axios.get("https://ocr.captchaai.com/res.php", {
      params: { key: "YOUR_API_KEY", action: "get", id: taskId },
    });
    if (result.data.startsWith("OK|")) {
      token = result.data.split("|")[1];
      break;
    }
  }

  // Inject token and fire callback
  await page.evaluate(
    (tok, cb) => {
      document.getElementById("g-recaptcha-response").value = tok;
      if (cb && typeof window[cb] === "function") {
        window[cb](tok);
      }
    },
    token,
    callback,
  );

  await browser.close();
})();

Hata 4: Eksik invisible=1 parametresi

Görünmez reCAPTCHA'yı CaptchaAI aracılığıyla çözerken, isteğinize invisible=1'yi ** eklemelisiniz**. Bu olmadan, çözücü görevi standart bir v2 onay kutusu mücadelesi olarak ele alır ve bu da ERROR_CAPTCHA_UNSOLVABLE'ye veya hedef sitenin reddettiği belirteçlere yol açabilir.

Yanlış ve doğru istek

# WRONG — missing invisible=1
params = {
    "key": "YOUR_API_KEY",
    "method": "userrecaptcha",
    "googlekey": sitekey,
    "pageurl": page_url
}

# CORRECT — includes invisible=1
params = {
    "key": "YOUR_API_KEY",
    "method": "userrecaptcha",
    "googlekey": sitekey,
    "pageurl": page_url,
    "invisible": 1  # Required for invisible reCAPTCHA
}

response = requests.get("https://ocr.captchaai.com/in.php", params=params)

Hata 5: Belirtecin süresi gönderilmeden önce doldu

Görünmez reCAPTCHA belirteçlerinin geçerliliği v2 standardıyla aynı şekilde 120 saniye içinde sona erer. Ancak görünmez iş akışlarında genellikle çözüm ile gönderim arasında ek işlem adımları bulunur ve bu da sürenin dolma olasılığını artırır.

Belirtiler

  • Form, belirteç enjeksiyonundan sonra genel bir hata döndürüyor
  • Sunucu tarafı siteverify, timeout-or-duplicate değerini döndürür
  • Jeton geçerliydi ancak gönderme adımına ulaşmak çok uzun sürdü

Düzeltme: Tam zamanında çözüm

Çözümü yalnızca hemen göndermeye hazır olduğunuzda isteyin:

import requests
import time

def solve_invisible_recaptcha(api_key, sitekey, page_url):
    # Submit task
    resp = requests.get("https://ocr.captchaai.com/in.php", params={
        "key": api_key,
        "method": "userrecaptcha",
        "googlekey": sitekey,
        "pageurl": page_url,
        "invisible": 1
    })
    if not resp.text.startswith("OK|"):
        raise Exception(f"Submit failed: {resp.text}")
    task_id = resp.text.split("|")[1]

    # Poll for result
    for _ in range(60):
        time.sleep(5)
        result = requests.get("https://ocr.captchaai.com/res.php", params={
            "key": api_key,
            "action": "get",
            "id": task_id
        })
        if result.text.startswith("OK|"):
            return result.text.split("|")[1]
        if result.text != "CAPCHA_NOT_READY":
            raise Exception(f"Solve failed: {result.text}")

    raise Exception("Solve timed out after 5 minutes")

# Usage: solve JUST before you need to submit
# 1. Navigate to page and prepare form data first
# 2. THEN solve the captcha
# 3. Inject token and submit immediately
token = solve_invisible_recaptcha("YOUR_API_KEY", sitekey, page_url)
# Submit within 120 seconds of receiving the token

Hata 6: Belirteç reddedildi — ERROR_BAD_TOKEN_OR_PAGEURL

Hedef site, jetonu Google ile doğruladı ve bir hatayla karşılaştı. Yaygın nedenler:

Sebep Nasıl tanımlanır Düzeltme
Yanlış pageurl URL, site anahtarı kaydındaki alan adıyla eşleşmiyor Widget'ın yüklendiği yerin tam URL'sini kullanın
Farklı alanda kullanılan jeton Alanlar arası jetonun yeniden kullanımı Doğru etki alanının pageurl'siyle çözün
Jeton zaten kullanılmış Aynı jetonun iki kez gönderilmesi Her gönderim için yeni bir çözüm isteyin
IP uyuşmazlığı IP'niz çözümleyicinin IP'sinden farklı Oturum IP'sine uyacak şekilde proxy parametrenizi ekleyin
Görünmez bayrak eksik V2 standardı olarak çözüldü, görünmez sayfada kullanıldı Çözüm isteğine invisible=1 ekleyin

Hata ayıklama kontrol listesi

def debug_invisible_solve(api_key, sitekey, page_url, proxy=None):
    """Run a diagnostic solve with detailed logging."""
    print(f"Sitekey: {sitekey}")
    print(f"Page URL: {page_url}")
    print(f"Proxy: {proxy or 'none'}")

    params = {
        "key": api_key,
        "method": "userrecaptcha",
        "googlekey": sitekey,
        "pageurl": page_url,
        "invisible": 1
    }
    if proxy:
        params["proxy"] = proxy
        params["proxytype"] = "HTTP"

    # Submit
    resp = requests.get("https://ocr.captchaai.com/in.php", params=params)
    print(f"Submit response: {resp.text}")
    if not resp.text.startswith("OK|"):
        return None

    task_id = resp.text.split("|")[1]
    print(f"Task ID: {task_id}")

    # Poll with timing
    start = time.time()
    for _ in range(60):
        time.sleep(5)
        result = requests.get("https://ocr.captchaai.com/res.php", params={
            "key": api_key, "action": "get", "id": task_id
        })
        elapsed = time.time() - start
        print(f"  [{elapsed:.0f}s] {result.text[:50]}")
        if result.text.startswith("OK|"):
            token = result.text.split("|")[1]
            print(f"Token received after {elapsed:.0f}s")
            print(f"Token length: {len(token)} characters")
            print(f"Token starts with: {token[:30]}...")
            return token
        if result.text != "CAPCHA_NOT_READY":
            print(f"FAILED: {result.text}")
            return None

    print("TIMEOUT after 5 minutes")
    return None

Hata 7: Bir sayfada birden fazla reCAPTCHA widget'ı

Bazı sayfalarda hem görünür bir v2 onay kutusu HEM de görünmez bir reCAPTCHA bulunur. Yanlış olanı çözerseniz jeton geçerlidir ancak ihtiyacınız olan eylemi koruyan widget'la eşleşmez.

Düzeltme: Doğru widget'ı hedefleyin

from bs4 import BeautifulSoup

def find_all_recaptcha_widgets(html):
    soup = BeautifulSoup(html, "html.parser")
    widgets = []

    for el in soup.find_all(class_="g-recaptcha"):
        widgets.append({
            "sitekey": el.get("data-sitekey"),
            "size": el.get("data-size", "normal"),
            "callback": el.get("data-callback"),
            "tag": el.name,
            "id": el.get("id")
        })

    return widgets

# Example output:
# [
#   {"sitekey": "6LdA...", "size": "normal", "callback": None, "tag": "div", "id": "recaptcha-login"},
#   {"sitekey": "6LdB...", "size": "invisible", "callback": "onRegister", "tag": "div", "id": "recaptcha-register"}
# ]
# Use the widget with size="invisible" for the invisible solve

Hata işleme özelliğine sahip eksiksiz görünmez reCAPTCHA çözücü

Bu üretime hazır sarmalayıcı, yukarıdaki tüm hataları giderir:

import requests
import time
import logging

logger = logging.getLogger(__name__)

class InvisibleRecaptchaSolver:
    def __init__(self, api_key, max_retries=3):
        self.api_key = api_key
        self.max_retries = max_retries
        self.base_url = "https://ocr.captchaai.com"

    def solve(self, sitekey, page_url, proxy=None):
        """Solve invisible reCAPTCHA with automatic retry on transient errors."""
        for attempt in range(1, self.max_retries + 1):
            try:
                token = self._attempt_solve(sitekey, page_url, proxy)
                if token:
                    return token
            except Exception as e:
                logger.warning(f"Attempt {attempt} failed: {e}")
                if attempt < self.max_retries:
                    time.sleep(2 ** attempt)
        raise Exception(f"Failed to solve after {self.max_retries} attempts")

    def _attempt_solve(self, sitekey, page_url, proxy):
        params = {
            "key": self.api_key,
            "method": "userrecaptcha",
            "googlekey": sitekey,
            "pageurl": page_url,
            "invisible": 1
        }
        if proxy:
            params["proxy"] = proxy
            params["proxytype"] = "HTTP"

        # Submit task
        resp = requests.get(f"{self.base_url}/in.php", params=params)

        if "ERROR" in resp.text:
            error = resp.text.strip()
            if error in ("ERROR_WRONG_GOOGLEKEY", "ERROR_KEY_DOES_NOT_EXIST"):
                raise Exception(f"Configuration error (do not retry): {error}")
            if error == "ERROR_ZERO_BALANCE":
                raise Exception("Account balance is zero — add funds")
            raise Exception(f"Submit error: {error}")

        if not resp.text.startswith("OK|"):
            raise Exception(f"Unexpected submit response: {resp.text}")

        task_id = resp.text.split("|")[1]

        # Poll for result
        for _ in range(60):
            time.sleep(5)
            result = requests.get(f"{self.base_url}/res.php", params={
                "key": self.api_key,
                "action": "get",
                "id": task_id
            })

            if result.text.startswith("OK|"):
                return result.text.split("|")[1]

            if result.text == "CAPCHA_NOT_READY":
                continue

            if result.text == "ERROR_CAPTCHA_UNSOLVABLE":
                logger.warning("Captcha unsolvable — will retry with new task")
                return None

            raise Exception(f"Poll error: {result.text}")

        raise Exception("Solve timed out after 5 minutes")


# Usage
solver = InvisibleRecaptchaSolver("YOUR_API_KEY")
token = solver.solve(
    sitekey="6LdKlZEU...",
    page_url="https://staging.example.com/qa-login"
)
print(f"Token: {token[:50]}...")
const axios = require("axios");

class InvisibleRecaptchaSolver {
  constructor(apiKey, maxRetries = 3) {
    this.apiKey = apiKey;
    this.maxRetries = maxRetries;
    this.baseUrl = "https://ocr.captchaai.com";
  }

  async solve(sitekey, pageUrl, proxy) {
    for (let attempt = 1; attempt <= this.maxRetries; attempt++) {
      try {
        const token = await this._attemptSolve(sitekey, pageUrl, proxy);
        if (token) return token;
      } catch (err) {
        console.warn(`Attempt ${attempt} failed: ${err.message}`);
        if (attempt < this.maxRetries) {
          await new Promise((r) => setTimeout(r, 2 ** attempt * 1000));
        }
      }
    }
    throw new Error(`Failed to solve after ${this.maxRetries} attempts`);
  }

  async _attemptSolve(sitekey, pageUrl, proxy) {
    const params = {
      key: this.apiKey,
      method: "userrecaptcha",
      googlekey: sitekey,
      pageurl: pageUrl,
      invisible: 1,
    };
    if (proxy) {
      params.proxy = proxy;
      params.proxytype = "HTTP";
    }

    // Submit task
    const submitResp = await axios.get(`${this.baseUrl}/in.php`, { params });
    if (submitResp.data.includes("ERROR")) {
      const error = submitResp.data.trim();
      if (["ERROR_WRONG_GOOGLEKEY", "ERROR_KEY_DOES_NOT_EXIST"].includes(error)) {
        throw new Error(`Configuration error (do not retry): ${error}`);
      }
      throw new Error(`Submit error: ${error}`);
    }

    const taskId = submitResp.data.split("|")[1];

    // Poll for result
    for (let i = 0; i < 60; i++) {
      await new Promise((r) => setTimeout(r, 5000));
      const result = await axios.get(`${this.baseUrl}/res.php`, {
        params: { key: this.apiKey, action: "get", id: taskId },
      });

      if (result.data.startsWith("OK|")) {
        return result.data.split("|")[1];
      }
      if (result.data === "CAPCHA_NOT_READY") continue;
      if (result.data === "ERROR_CAPTCHA_UNSOLVABLE") return null;
      throw new Error(`Poll error: ${result.data}`);
    }
    throw new Error("Solve timed out after 5 minutes");
  }
}

// Usage
const solver = new InvisibleRecaptchaSolver("YOUR_API_KEY");
solver.solve("6LdKlZEU...", "https://staging.example.com/qa-login").then((token) => {
  console.log(`Token: ${token.substring(0, 50)}...`);
});

Sorun giderme kontrol listesi

Görünmez reCAPTCHA çözme başarısız olduğunda bu kontrol listesini uygulayın:

Adım Kontrol et Komut/Action
1 V2 standardı değil, görünmez olduğunu doğrulayın Oluşturma çağrısında data-size="invisible" veya size: 'invisible''yi arayın
2 Site anahtarının doğru olduğunu doğrulayın Özellikle görünmez widget'taki data-sitekey ile karşılaştırın
3 API isteğinde invisible=1'yi onaylayın in.php parametrelerinizi kontrol edin
4 pageurl'nin tam olarak eşleştiğini kontrol edin Yönlendirme URL'si değil, tarayıcı DevTools URL'sini kullanın
5 Geri arama işlevi adını bulun grecaptcha.render()'de data-callback özelliğini veya callback'yi arayın
6 Belirteç ekleme + geri arama çağrısını doğrulama Her iki adım da gereklidir; jeton tek başına yeterli değildir
7 Jeton tazeliğini kontrol edin Jeton 120 saniye içinde kullanılmalıdır
8 IP'nin önemli olup olmadığını proxy ile test edin proxy ve proxytype parametrelerini ekleyin

SSS

Görünmez reCAPTCHA'nın çözüm açısından v2 standardından farkı nedir?

API yöntemi aynıdır (method=userrecaptcha), ancak isteğinize invisible=1 eklemelisiniz. Kritik fark enjeksiyon tarafındadır: Görünmez reCAPTCHA neredeyse her zaman jetonu enjekte ettikten sonra bir JavaScript geri çağırma işlevinin çağrılmasını gerektirirken v2 standardı genellikle yalnızca gizli alanla çalışır.

Tokenım neden testte çalışıyor ancak üretimde başarısız oluyor?

Büyük ihtimalle IP uyuşmazlığı. Test sırasında, çözücü ve tarayıcınız benzer IP'leri paylaşabilir. Üretimde, çözücünün IP'si ile sunucunuzun IP'si farklıdır. Bunu düzeltmek için oturum IP'nizle eşleşen bir proxy parametresi ekleyin.

Görünmez reCAPTCHA'nın çözülmesi ne kadar sürer?

Tipik çözüm süreleri CaptchaAI'ye kadar 10-30 saniyedir. Görünmez zorluklar genellikle v2 onay kutusu meydan okumalarından daha hızlıdır çünkü görüntü tanıma gerektirmezler; risk analizine dayanırlar.

Görünmez reCAPTCHA'yı tarayıcı olmadan çözebilir miyim?

Evet. Çözüm API aracılığıyla sunucu tarafında gerçekleştiğinden, yalnızca site anahtarına ve sayfa URL'sine ihtiyacınız vardır. Tarayıcı yalnızca gerçek sayfada geri arama işlevini yürütmeniz gerekiyorsa gereklidir. Saf API iş akışları için site anahtarını çıkarın, CaptchaAI aracılığıyla çözün ve belirteci HTTP isteğinizle birlikte gönderin.


Sonraki adımlar

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