API Dokümantasyonu
API'yi uygulamalarınıza entegre etmek için mevcut uç noktalar, istek formatları, parametreler ve örnek yanıtlar için başvuru kaynağı.
Bu dokümantasyon, CapSkip'i doğrudan kendi betiklerine, uygulamalarına veya otomasyon sistemlerine entegre etmek isteyen geliştiriciler için hazırlanmıştır. Üçüncü taraf yazılım kullanıcıları, kurulum talimatları için Öğreticiler bölümünü takip etmelidir.
CapSkip, yaygın olarak kullanılan CAPTCHA çözme servislerinin API'lerini taklit eder; bu da herhangi bir değişiklik gerektirmeden uyumlu üçüncü taraf yazılımlara bağlanmasını sağlar. Entegrasyon genellikle yalnızca CapSkip'i çalıştırmayı gerektirir.
Belgeler, isteklerin nasıl gönderileceğini ve sonuçların nasıl alınacağını açıklar. CapSkip birden fazla API ailesini destekler; bunlara 2Captcha tarzı API (in.php / res.php), AntiCaptcha, CapMonster ve CapSolver tarafından kullanılan JSON createTask / getTaskResult API'si ve DeathByCaptcha REST API'si dahildir. Aynı aile içindeki hizmetler aynı endpoint'leri, istek ve yanıt formatını paylaşır. Her hizmet için yalnızca temel URL (host ve port) farklıdır.
| API ailesi | Hizmetler |
|---|---|
| 2captcha tarzı | 2captcha.com, rucaptcha.com, solvecaptcha.com, captchas.io |
| JSON (createTask / getTaskResult) | anti-captcha.com, capmonster.cloud, capsolver.com |
| DeathByCaptcha | deathbycaptcha.com |
Görüntü CAPTCHA
Normal bir CAPTCHA, bozuk ancak insan tarafından okunabilir metin içeren bir görüntüdür. Çözmek için kullanıcının görüntüde gösterilen metni yazması gerekir.
Normal bir CAPTCHA'yı çözmek için, görseli API uç noktasına bir HTTP POST isteğiyle gönderin. İsteği, yapılandırılmış yerel adres ve portu kullanarak doğrudan CapSkip örneğinize gönderin, örneğin: http://127.0.0.1:PORT/in.php
CapSkip, multipart/form-data veya Base64 ile kodlanmış formattaki görüntüleri kabul eder.
Multipart örnek form
<form method="post" action="http://127.0.0.1:PORT/in.php" enctype="multipart/form-data"> <input type="hidden" name="method" value="post"> Your key: <input type="text" name="key" value="YOUR_APIKEY"> The CAPTCHA file: <input type="file" name="file"> <input type="submit" value="Upload and get the ID"> </form>
YOUR_APIKEY CapSkip'te API key doğrulaması etkinse API key'inizi temsil eder. API key doğrulaması devre dışıysa, herhangi bir dize değeri kabul edilir.
Base64 örnek form
<form method="post" action="http://127.0.0.1:PORT/in.php"> <input type="hidden" name="method" value="base64"> Your key: <input type="text" name="key" value="YOUR_APIKEY"> The CAPTCHA file body in base64 format: <textarea name="body">BASE64_FILE</textarea> <input type="submit" value="Upload and get the ID"> </form>
YOUR_APIKEY CapSkip'te API key doğrulaması etkinse API key'inizi temsil eder. API key doğrulaması devre dışıysa, herhangi bir dize değeri kabul edilir.
BASE64_FILE Base64 ile kodlanmış görüntü verisidir.
POST İstek Parametrelerinin Listesi
| POST parametresi | Tür | Gerekli | Açıklama |
|---|---|---|---|
| key | Dize | Evet | CapSkip API key'iniz. |
| method | Dize | Evet |
post – görüntüyü multipart/form-data kullanarak gönderin base64 – görseli Base64 kodlu bir dize olarak gönderin |
| file | Dosya | Evet* |
CAPTCHA görsel dosyası. * method=post olduğunda gereklidir. |
| body | Dize | Evet* |
Base64 ile kodlanmış CAPTCHA görüntü verisi. * method=base64 olduğunda gereklidir. |
| json | Tam sayı Varsayılan: 0 | Hayır |
0 – yanıt düz metin olarak döndürülür 1 – yanıt JSON biçiminde döndürülür |
CAPTCHA gönder (multipart dosya yükleme):
curl -X POST -F "key=YOUR_API_KEY" -F "method=post" -F "[email protected]" http://127.0.0.1:8080/in.php
CAPTCHA gönder (base64 kodlanmış):
curl -X POST -d "key=YOUR_API_KEY&method=base64&body=BASE64_IMAGE_DATA" http://127.0.0.1:8080/in.php
İsteği gönderdikten sonra, her şey doğruysa, CapSkip CAPTCHA ID'sini düz metin olarak döndürür: OK|12345
Eğer json=1 parametresi kullanılırsa yanıt JSON biçiminde döndürülür:
{
"status":1,
"request":"12345"
}1 saniye bekleyin, ardından sonuç uç noktasına bir HTTP GET isteği gönderin (/res.php) döndürülen CAPTCHA kimliğiyle.
CAPTCHA çözüldüyse, CapSkip sonucu düz metin olarak döndürür: OK|TEXT
Eğer json=1 belirtilmişse, yanıt şu olur:
{
"status":1,
"request":"TEXT"
}CAPTCHA henüz çözülmediyse CapSkip şunu döndürür: CAPCHA_NOT_READY
Bu durumda 1 saniye bekleyin ve nihai bir sonuç alınana kadar isteği tekrarlayın. CapSkip boş bir yanıt gövdesi döndürürse sonuç zaten alınmıştır veya ID mevcut değildir. Her sonuç yalnızca bir kez okunabilir.
GET istek parametrelerinin listesi
| GET parametresi | Tür | Gerekli | Açıklama |
|---|---|---|---|
| key | Dize | Evet | CapSkip API key'iniz. |
| action | Dize | Evet | get – gönderilen CAPTCHA için yanıtı alır. |
| id | Tam sayı | Evet |
Şunun döndürdüğü CAPTCHA ID'si in.php. |
| json | Tam sayı Varsayılan: 0 | Hayır |
0 – yanıt düz metin olarak döndürülür 1 – yanıt JSON biçiminde döndürülür |
curl "http://127.0.0.1:8080/res.php?key=YOUR_API_KEY&action=get&id=CAPTCHA_ID"
reCAPTCHA V2
reCAPTCHA v2, “I’m not a robot” reCAPTCHA'sı olarak da bilinen, aşağıdaki gibi görünen yaygın olarak kullanılan bir CAPTCHA türüdür:
reCAPTCHA v2'yi çözmek için şunu gönderin: googlekey ve pageurl parametreler, şununla birlikte method=userrecaptcha ve CapSkip API anahtarınız.
Şunu edinebilirsiniz: googlekey aşağıdaki yöntemlerden birini kullanarak:
reCAPTCHA widget'ına sağ tıklayın ve şunu seçin: İncele. Şununla başlayan bir URL bulun:
www.google.com/recaptcha/api2/anchor
Şunun değerini kopyalayın: k o URL'deki parametre. Alternatif olarak, şunu bulun: data-sitekey sayfa kaynağındaki özniteliği ve değerini kopyalayın.

Site anahtarını aldıktan sonra, şuraya bir HTTP GET veya POST isteği gönderin: http://127.0.0.1:PORT/in.php
POST İstek Parametrelerinin Listesi
| Parametre | Tür | Gerekli | Açıklama |
|---|---|---|---|
| key | Dize | Evet | CapSkip API key'iniz. |
| method | Dize | Evet | userrecaptcha – bir reCAPTCHA v2 isteği belirtir. |
| googlekey | Dize | Evet | Şunun değeri: k veya data-sitekey hedef sayfada bulunan parametre. |
| pageurl | Dize | Evet | reCAPTCHA'nın bulunduğu sayfanın tam URL'si. |
| enterprise | Tam sayı Varsayılan: 0 | Hayır |
1 – reCAPTCHA Enterprise v2'yi belirtir. 0 – standart reCAPTCHA v2. |
| invisible | Tam sayı Varsayılan: 0 | Hayır |
1 – Invisible reCAPTCHA'yı belirtir. 0 – standart checkbox reCAPTCHA. |
| data-s | Dize | Hayır | Şunun değeri: data-s sayfada bulunan parametre. Google Search ve belirli Google servisleri için geçerlidir. |
| json | Tam sayı Varsayılan: 0 | Hayır |
0 – yanıt düz metin olarak döndürülür. 1 – yanıt JSON formatında döndürülür. |
| proxy | Dize | Hayır | Proxy adresi. IP kimlik doğrulaması için biçim: IP:PORT (örnek: 123.123.123.123:3128). Kullanıcı adı/parola kimlik doğrulaması için biçim: login:password@IP:PORT |
| proxytype | Dize | Hayır | Proxy türü. Desteklenen değerler: HTTP, HTTPS, SOCKS5, SOCKS5H. Varsayılan: HTTP ne zaman proxy sağlanır ancak proxytype atlanır. |
reCAPTCHA v2 Gönder (Standard):
curl -X POST -d "key=YOUR_API_KEY&method=userrecaptcha&googlekey=6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-&pageurl=https://example.com" http://127.0.0.1:8080/in.php
reCAPTCHA v2 Gönder (Invisible):
curl -X POST -d "key=YOUR_API_KEY&method=userrecaptcha&googlekey=6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-&pageurl=https://example.com&invisible=1" http://127.0.0.1:8080/in.php
Enterprise reCAPTCHA v2 gönderin:
curl -X POST -d "key=YOUR_API_KEY&method=userrecaptcha&googlekey=6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-&pageurl=https://example.com&enterprise=1" http://127.0.0.1:8080/in.php
Enterprise reCAPTCHA v2 (Invisible) gönderin:
curl -X POST -d "key=YOUR_API_KEY&method=userrecaptcha&googlekey=6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-&pageurl=https://example.com&enterprise=1&invisible=1" http://127.0.0.1:8080/in.php
İstek başarılı olursa, CapSkip CAPTCHA kimliğini düz metin olarak döndürür: OK|12345
Eğer json=1 parametresi kullanıldıysa, yanıt JSON formatında döndürülür:
{
"status":1,
"request":"12345"
}İstek başarısız olursa, CapSkip bir hata kodu döndürür.
15 ila 20 saniye bekleyin, ardından çözümü almak için sonuç uç noktasına bir HTTP GET isteği gönderin: http://127.0.0.1:PORT/res.php
GET istek parametrelerinin listesi
| GET parametresi | Tür | Gerekli | Açıklama |
|---|---|---|---|
| key | Dize | Evet | CapSkip API key'iniz. |
| action | Dize | Evet | get – gönderilen CAPTCHA için yanıtı alır. |
| id | Tam sayı | Evet |
Şunun döndürdüğü CAPTCHA ID'si in.php. |
| json | Tam sayı Varsayılan: 0 | Hayır |
0 – yanıt düz metin olarak döndürülür 1 – yanıt JSON biçiminde döndürülür |
curl "http://127.0.0.1:8080/res.php?key=YOUR_API_KEY&action=get&id=CAPTCHA_ID"
CAPTCHA çözüldüyse, CapSkip düz metin veya JSON ile yanıt verir ve yanıt token'ını döndürür. Token aşağıdakine benzer görünür:
03AHJ_Vuve5Asa4koK3KSMyUkCq0vUFCR5Im4CwB7PzO3dCxIo11i53epEraq-uBO5mVm2XRikL8iKOWr0aG50sCuej9bXx5qcviUGSm4iK4NC_Q88flavWhaTXSh0VxoihBwBjXxwXuJZ-WGN5Sy4dtUl2wbpMqAj8Zwup1vyCaQJWFvRjYGWJ_TQBKTXNB5CCOgncqLetmJ6B6Cos7qoQyaB8ZzBOTGf5KSP6e-K9niYs772f53Oof6aJeSUDNjiKG9gN3FTrdwKwdnAwEYX-F37sI_vLB1Zs8NQo0PObHYy0b0sf7WSLkzzcIgW9GR0FwcCCm1P8lB-50GQHPEBJUHNnhJyDzwRoRAkVzrf7UkV8wKCdTwrrWqiYDgbrzURfHc2ESsp020MicJTasSiXmNRgryt-gf50q5BMkiRH7osm4DoUgsjc_XyQiEmQmxl5sqZP7aKsaE-EM00x59XsPzD3m3YI6SRCFRUevSyumBd7KmXE8VuzIO9lgnnbka4-eZynZa6vbB9cO3QjLH0xSG3-egcplD1uLGh79wC34RF49Ui3eHwua4S9XHpH6YBe7gXzz6_mv-o-fxrOuphwfrtwvvi2FGfpTexWvxhqWICMFTTjFBCEGEgj7_IFWEKirXW2RTZCVF0Gid7EtIsoEeZkPbrcUISGmgtiJkJ_KojuKwImF0G0CsTlxYTOU2sPsd5o1JDt65wGniQR2IZufnPbbK76Yh_KI2DY4cUxMfcb2fAXcFMc9dcpHg6f9wBXhUtFYTu6pi5LhhGuhpkiGcv6vWYNxMrpWJW_pV7q8mPilwkAP-zw5MJxkgijl2wDMpM-UUQ_k37FVtf-ndbQAIPG7S469doZMmb5IZYgvcB4ojqCW3Vz6Q
CAPTCHA henüz çözülmediyse, CapSkip şunu döndürür: CAPCHA_NOT_READY. Bu durumda 5 saniye bekleyin ve isteği tekrarlayın. CapSkip boş bir yanıt gövdesi döndürürse, sonuç zaten alınmıştır veya kimlik (ID) mevcut değildir. Her sonuç yalnızca bir kez okunabilir.
Şu ID'ye sahip öğeyi bulun: g-recaptcha-response ve şunu kaldırarak onu görünür yapın: display: none stil.

Lütfen unutmayın: Bazı durumlarda sayfa içeriği dinamik olarak oluşturulur ve
g-recaptcha-responseelement may not appear in the static HTML source. In such situations, inspect the page structure using your browser’s developer tools to locate the dynamically generated element.
Alternatif olarak, şunun değerini ayarlamak için JavaScript kullanabilirsiniz: g-recaptcha-response alanını doğrudan:
document.getElementById("g-recaptcha-response").innerHTML="TOKEN";Sayfada bir giriş alanı belirir. Yanıt token'ını o alana yapıştırın ve formu gönderin.
reCAPTCHA V2 Callback
Bazı durumlarda gönder düğmesi yoktur ve bunun yerine bir callback fonksiyonu kullanılır. Callback fonksiyonu, reCAPTCHA çözüldüğünde otomatik olarak çalıştırılır.
POST ve GET istek parametrelerinin listesi burada mevcuttur: reCAPTCHA V2 POST ve GET istek parametreleri
Callback fonksiyonu genellikle şurada tanımlanır: data-callback reCAPTCHA widget'ının özniteliği, örneğin:
data-callback="myCallbackFunction"
Diğer durumlarda callback fonksiyonu şu şekilde tanımlanır callback şunun parametresi: grecaptcha.render() fonksiyonu, örneğin:
grecaptcha.render('example', {
'sitekey' : 'someSitekey',
'callback' : myCallbackFunction,
'theme' : 'dark'
});Callback fonksiyonunu bulmanın başka bir yolu, tarayıcının JavaScript konsolunu açmak ve reCAPTCHA yapılandırma nesnesini incelemektir:
___grecaptcha_cfg.clients[0].aa.l.callback
Şuna dikkat edin: aa.l özelliği değişebilir ve sayfada birden fazla reCAPTCHA istemcisi olabilir. Bu gibi durumlarda ayrıca şunu incelemelisiniz: clients[1], clients[2], ve doğru yapılandırma nesnesini bulmak için diğer girdiler.
Alternatif olarak, reCAPTCHA parametrelerini otomatik olarak çıkarmak için aşağıdaki betiği kullanabilirsiniz:
function findRecaptchaClients() {
if (typeof (___grecaptcha_cfg) !== 'undefined') {
return Object.entries(___grecaptcha_cfg.clients).map(([cid, client]) => {
const data = { id: cid, version: cid >= 10000 ? 'V3' : 'V2' };
const objects = Object.entries(client).filter(([_, value]) => value && typeof value === 'object');objects.forEach(([toplevelKey, toplevel]) => {
const found = Object.entries(toplevel).find(([_, value]) => (
value && typeof value === 'object' && 'sitekey' in value && 'size' in value
));
if (typeof toplevel === 'object' && toplevel instanceof HTMLElement && toplevel['tagName'] === 'DIV'){
data.pageurl = toplevel.baseURI;
}
if (found) {
const [sublevelKey, sublevel] = found;data.sitekey = sublevel.sitekey;
const callbackKey = data.version === 'V2' ? 'callback' : 'promise-callback';
const callback = sublevel[callbackKey];
if (!callback) {
data.callback = null;
data.function = null;
} else {
data.function = callback;
const keys = [cid, toplevelKey, sublevelKey, callbackKey].map((key) => `['${key}']`).join('');
data.callback = `___grecaptcha_cfg.clients${keys}`;
}
}
});
return data;
});
}
return [];
}Son olarak, callback fonksiyonunu çağırın:
myCallbackFunction();
Ya da alternatif olarak:
___grecaptcha_cfg.clients[0].aa.l.callback();
Bazı durumlarda callback fonksiyonu bir argüman gerektirir. Çoğu durumda, çözülen token'ı bu argüman olarak iletmelisiniz. Örneğin:
myCallbackFunction('TOKEN');
reCAPTCHA V2 Invisible
reCAPTCHA v2'nin ayrıca bir Invisible modu vardır. Buradan bir örnek görebilirsiniz:
https://www.google.com/recaptcha/api2/demo?invisible=true
Invisible reCAPTCHA, "I'm not a robot" onay kutusunu göstermez. Bunun yerine, tipik olarak bir düğmeye bağlanır ya da sayfa yüklendiğinde veya bir düğmeye tıklamak ya da bir form göndermek gibi bir kullanıcı etkileşiminde otomatik olarak tetiklenir.
Dahili olarak, Invisible reCAPTCHA widget'ı gizli bir öğenin içinde render edilir: <div> görünür görüntü alanının (viewport) dışına konumlandırılmış, onu kullanıcı için görünmez kılan öğe.
Kullanıcının çerezlerine ve risk skoruna bağlı olarak, reCAPTCHA bir challenge göstermeden otomatik olarak geçebilir. Aksi halde standart bir görsel challenge belirir.
Çoğu durumda, sorgu tamamlandığında bir callback fonksiyonu çalıştırılır. Daha fazla ayrıntı için yukarıdaki callback bölümüne bakın.
POST ve GET istek parametrelerinin listesi burada mevcuttur: reCAPTCHA V2 POST ve GET istek parametreleri
reCAPTCHA'nın Görünmez Olup Olmadığı Nasıl Belirlenir?
Invisible reCAPTCHA'yı aşağıdaki göstergelerden birini kullanarak tanımlayabilirsiniz:
“I’m not a robot” onay kutusu görünmez, ancak kullanıcı etkileşiminden sonra bir challenge görünür.
reCAPTCHA iframe URL'si şu parametreyi içerir:
size=invisible.reCAPTCHA yapılandırma nesnesi bir
sizeözelliği şuna ayarlıinvisible, örneğin:___grecaptcha_cfg.clients[0].aa.l.size === "invisible"
Invisible reCAPTCHA'yı API aracılığıyla çözerken, parametreyi ekleyin: invisible=1
Tarayıcıda Invisible reCAPTCHA Nasıl Ele Alınır?
Yöntem 1: JavaScript Kullanma
Şunun değerini ayarlayın: g-recaptcha-response alanını CapSkip tarafından döndürülen token'a:
document.getElementById("g-recaptcha-response").innerHTML="TOKEN";Token'ı ayarladıktan sonra, normalde başarılı doğrulamadan sonra gerçekleşen eylemi yürütün.
Çoğu durumda bu, bir form göndermek anlamına gelir. Doğru formu şuna göre belirlemeniz gerekir id, name, veya başka bir öznitelik, ardından gönderimi tetikleyin. İşte birkaç örnek:
document.getElementById("recaptcha-demo-form").submit(); //by id "recaptcha-demo-form"
document.getElementsByName("myFormName")[0].submit(); //by element name "myFormName"
document.getElementsByClassName("example").submit(); //by class name "example"Bazı durumlarda, reCAPTCHA çözüldüğünde bir callback fonksiyonu otomatik olarak yürütülür.
Callback fonksiyonu genellikle şurada tanımlanır: data-callback reCAPTCHA widget'ının özniteliği, örneğin:
data-callback="myCallbackFunction"
Diğer durumlarda callback fonksiyonu şu şekilde tanımlanır callback şunun parametresi: grecaptcha.render() fonksiyonu, örneğin:
grecaptcha.render('example', {
'sitekey' : 'someSitekey',
'callback' : myCallbackFunction,
'theme' : 'dark'
});Tek yapmanız gereken o fonksiyonu çağırmaktır:
myCallbackFunction();
Yöntem 2: HTML'yi Değiştirmek
Şunu kaldırın: <div> sayfa gövdesinden reCAPTCHA widget'ını içeren öğe.
<div style="visibility: hidden; position: absolute; width:100%; top: -10000px; left: 0px; right: 0px; transition: visibility 0s linear 0.3s, opacity 0.3s linear; opacity: 0;"> <div style="width: 100%; height: 100%; position: fixed; top: 0px; left: 0px; z-index: 2000000000; background-color: #fff; opacity: 0.5; filter: alpha(opacity=50)"></div> <div style="margin: 0 auto; top: 0px; left: 0px; right: 0px; position: absolute; border: 1px solid #ccc; z-index: 2000000000; background-color: #fff; overflow: hidden;"> <iframe src="https://www.google.com/recaptcha/api2/bframe?hl=en&v=r20170213115309&k=6LfP0CITAAAAAHq9FOgCo7v_fb0-pmmH9VW3ziFs#zglq3yifgkmj" title="recaptcha challenge" style="width: 100%; height: 100%;" scrolling="no" name="zglq3yifgkmj" frameborder="0"></iframe> </div> </div>
Tüm reCAPTCHA bloğunu sayfadan kaldırın.
<div class="">
<!-- BEGIN: ReCAPTCHA implementation example. -->
<div
id="recaptcha-demo"
class="g-recaptcha"
data-sitekey="6LfP0CITAAAAAHq9FOgCo7v_fb0-pmmH9VW3ziFs"
data-callback="onSuccess"
data-bind="recaptcha-demo-submit"
>
<div
class="grecaptcha-badge"
style="width: 256px; height: 60px; transition: right 0.3s ease 0s; position: fixed; bottom: 14px; right: -186px; box-shadow: 0px 0px 5px gray;"
>
<div class="grecaptcha-logo">
<iframe
src="https://www.google.com/recaptcha/api2/anchor?k=6LfP0CITAAAAAHq9FOgCo7v_fb0-pmmH9VW3ziFs&co=aHR0cHM6Ly93d3cuZ29vZ2xlLmNvbTo0NDM.&hl=en&v=r20170213115309&size=invisible&cb=uror1hlow5a"
title="recaptcha widget"
scrolling="no"
name="undefined"
width="256"
height="60"
frameborder="0"
></iframe>
</div>
<div class="grecaptcha-error"></div>
<textarea
id="g-recaptcha-response"
name="g-recaptcha-response"
class="g-recaptcha-response"
style="width: 250px; height: 40px; border: 1px solid #c1c1c1; margin: 10px 25px; padding: 0px; resize: none; display: none; "
></textarea>
</div>
</div>
<script>
var onSuccess = function (response) {
var errorDivs = document.getElementsByClassName('recaptcha-error');
if (errorDivs.length) {
errorDivs[0].className = '';
}
var errorMsgs = document.getElementsByClassName('recaptcha-error-message');
if (errorMsgs.length) {
errorMsgs[0].parentNode.removeChild(errorMsgs[0]);
}
document.getElementById('recaptcha-demo-form').submit();
};
</script>
<!-- Optional noscript fallback. --><!-- END: ReCAPTCHA implementation example. -->
</div>Kaldırılan bloğun yerine aşağıdaki kodu ekleyin:
<input type="submit" /> <textarea name="g-recaptcha-response">%g-recaptcha-response%</textarea>
%g-recaptcha-response% CapSkip'ten alınan yanıt token'ını temsil eder.
Bloğu değiştirdikten sonra bir “Submit query” düğmesi belirir. Formu şununla birlikte göndermek için düğmeye tıklayın: g-recaptcha-response değerini ve gerekli diğer tüm form verilerini web sitesine.
reCAPTCHA V3
reCAPTCHA v3, Google tarafından geliştirilen modern bir CAPTCHA mekanizmasıdır. Görünür bir doğrulama sunmaz ve kullanıcı etkileşimi gerektirmez. Bunun yerine, etkileşimin insan olma olasılığına göre bir puan atar.
Teknik olarak reCAPTCHA v3, reCAPTCHA v2'ye benzer. Web sitesi, reCAPTCHA API'sinden bir token alır; bu token daha sonra bir POST isteğiyle hedef sunucuya gönderilir ve reCAPTCHA API'si aracılığıyla doğrulanır.
Temel fark, reCAPTCHA v3'ün görünür bir challenge göstermemesidir. Bunun yerine, kullanıcının insan mı yoksa bot mu olduğunu tahmin eden bir derece döndürür. Bu dereceye şu ad verilir: score ve 0,0 ile 1,0 arasında değişir. Skor web sitesine gönderilir ve site daha sonra bu değere göre isteği nasıl ele alacağına karar verir.
Ayrıca şu adında ek bir parametre de vardır action, bu da web sitesinin farklı kullanıcı etkileşimlerini birbirinden ayırt etmesini sağlar. Token'ı doğruladıktan sonra reCAPTCHA API'si, istekle ilişkili action adını döndürür.
CapSkip Kullanarak reCAPTCHA v3 Nasıl Çözülür?
Öncelikle, hedef web sitesinin reCAPTCHA v3 kullandığını doğrulayın.
reCAPTCHA v3 göstergeleri şunları içerir:
Görünür CAPTCHA veya görsel doğrulama yok
The
api.jsbetik şununla yüklenir:render=SITEKEYparametre, örneğin:https://www.google.com/recaptcha/api.js?render=SITEKEYThe
___grecaptcha_cfg.clientsdizisi, yüksek sayısal indeksli bir girdi içerir, örneğinclients[100000]
reCAPTCHA v3'ü çözmek için, aşağıdaki parametreleri belirleyin:
- sitekey
Bu şurada bulunabilir:renderşunun parametresi:api.jsscript URL'si. Ayrıca bir iframe URL'sinde, şunu çağıran JavaScript kodunun içinde de görünebilirgrecaptcha.execute(), ya da şunun içinde:___grecaptcha_cfgyapılandırma nesnesi. - action
Bunu, JavaScript kodunu şuna yapılan çağrılar için inceleyerek bulun:grecaptcha.execute(), örneğin:grecaptcha.execute('SITEKEY', {action: 'do_something'})Bazı durumlarda action'ı bulmak, sayfanın yüklediği birden fazla JavaScript dosyasını incelemeyi gerektirir. action değerini belirleyemezseniz, varsayılan değeri kullanabilirsiniz"verify". - pageurl
reCAPTCHA v3'ün uygulandığı sayfanın tam URL'si.
Puanı Anlamak
Kabul edilebilir skor eşiği web sitesine göre değişir ve yalnızca test yoluyla belirlenebilir. Skorlar şu aralıktadır:
0,0 → muhtemelen bot
1.0 → muhtemelen insan
Çoğu web sitesi 0,3 ile 0,7 arasında eşikler kullanır, çünkü meşru kullanıcılar bile daha düşük skorlar alabilir.
İstediğiniz eşiği şunu kullanarak geçirebilirsiniz: min_score parametresi, ancak nihai puana her zaman doğrulama sırasında Google karar verir ve çözücü tarafından garanti edilemez.
POST İstek Parametrelerinin Listesi
| Parametre | Tür | Gerekli | Açıklama |
|---|---|---|---|
| key | Dize | Evet | CapSkip API key'iniz. |
| method | Dize | Evet | userrecaptcha – bir reCAPTCHA isteği belirtir. |
| version | Dize | Evet | v3 – isteğin reCAPTCHA v3 için olduğunu belirtir. |
| googlekey | Dize | Evet | Şunun değeri: data-sitekey hedef sayfada bulunan parametre. |
| pageurl | Dize | Evet | reCAPTCHA'nın bulunduğu sayfanın tam URL'si. |
| enterprise | Tam sayı Varsayılan: 0 | Hayır |
1 – reCAPTCHA Enterprise v3'ü belirtir. 0 – standart reCAPTCHA v3. |
| action | Dize Varsayılan: verify | Hayır | Şunun değeri: action sayfada tanımlanan parametre. |
| min_score | Float | Hayır | Token için istenen minimum skor. Google, nihai skoru sunucunuz token'ı doğruladığında atar, bu nedenle bu değer bir ipucudur ve garanti edilmez. CapSkip, Google'ın daha sonra atayacağı skordan bağımsız olarak elde ettiği token'ı döndürür. |
| json | Tam sayı Varsayılan: 0 | Hayır |
0 – yanıt düz metin olarak döndürülür. 1 – yanıt JSON formatında döndürülür. |
| proxy | Dize | Hayır | Proxy adresi. IP kimlik doğrulaması için biçim: IP:PORT (örnek: 123.123.123.123:3128). Kullanıcı adı/parola kimlik doğrulaması için biçim: login:password@IP:PORT |
| proxytype | Dize | Hayır | Proxy türü. Desteklenen değerler: HTTP, HTTPS, SOCKS5, SOCKS5H. Varsayılan: HTTP ne zaman proxy sağlanır ancak proxytype atlanır. |
reCAPTCHA v3'ü gönderin:
curl -X POST -d "key=YOUR_API_KEY&method=userrecaptcha&version=v3&action=submit&min_score=0.7&googlekey=6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-&pageurl=https://example.com" http://127.0.0.1:8080/in.php
Enterprise reCAPTCHA v3'ü gönderin:
curl -X POST -d "key=YOUR_API_KEY&method=userrecaptcha&version=v3&action=submit&min_score=0.7&googlekey=6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-&pageurl=https://example.com&enterprise=1" http://127.0.0.1:8080/in.php
İstek başarılı olursa, CapSkip CAPTCHA kimliğini düz metin olarak döndürür: OK|12345
Eğer json=1 parametresi belirtilirse, yanıt JSON formatında döndürülür:
{
"status":1,
"request":"12345"
}Bir hata oluşursa, CapSkip bir hata kodu döndürür.
10 ila 15 saniye bekleyin, ardından sonuç uç noktasına bir HTTP GET isteği gönderin: http://127.0.0.1:PORT/res.php
Döndürülen CAPTCHA ID'sini isteğinizde sağlayın. Kullanılabilir parametrelerin tam listesi aşağıdaki tabloda gösterilmiştir.
CAPTCHA başarıyla çözüldüyse, CapSkip sonucu düz metin veya JSON biçiminde döndürür. Dönen değer, aşağıdakine benzer bir doğrulama token'ıdır:
03AHJ_Vuve5Asa4koK3KSMyUkCq0vUFCR5Im4CwB7PzO3dCxIo11i53epEraq-uBO5mVm2XRikL8iKOWr0aG50sCuej9bXx5qcviUGSm4iK4NC_Q88flavWhaTXSh0VxoihBwBjXxwXuJZ-WGN5Sy4dtUl2wbpMqAj8Zwup1vyCaQJWFvRjYGWJ_TQBKTXNB5CCOgncqLetmJ6B6Cos7qoQyaB8ZzBOTGf5KSP6e-K9niYs772f53Oof6aJeSUDNjiKG9gN3FTrdwKwdnAwEYX-F37sI_vLB1Zs8NQo0PObHYy0b0sf7WSLkzzcIgW9GR0FwcCCm1P8lB--gf50q5BMkiRH7osm4DoUgsjc_XyQiEmQmxl5sqZP7aKsaE-EM00x59XsPzD3m3YI6SRCFRUevSyumBd7KmXE8VuzIO9lgnnbka4-eZynZa6vbB9cO3QjLH0xSG3--o-fxrOuphwfrtwvvi2FGfpTexWvxhqWICMFTTjFBCEGEgj7_IFWEKirXW2RTZCVF0Gid7EtIsoEeZkPbrcUISGmgtiJkJ_KojuKwImF0G0CsTlxYTOU2sPsd5o1JDt65wGniQR2IZufnPbbK76Yh_KI2DY4cUxMfcb2fAXcFMc9dcpHg6f9wBXhUtFYTu6pi5LhhGuhpkiGcv6vWYNxMrpWJW_pV7q8mPilwkAP-zw5MJxkgijl2wDMpM-UUQ_k37FVtf-ndbQAIPG7S469doZMmb5IZYgvcB4ojqCW3Vz6Q
CAPTCHA henüz çözülmediyse, CapSkip şunu döndürür: CAPCHA_NOT_READY. 5 saniye bekleyin ve isteği tekrarlayın. CapSkip boş bir yanıt gövdesi döndürürse, sonuç zaten alınmıştır veya ID mevcut değildir. Her sonuç yalnızca bir kez okunabilir.
GET istek parametrelerinin listesi
| GET parametresi | Tür | Gerekli | Açıklama |
|---|---|---|---|
| key | Dize | Evet | CapSkip API key'iniz. |
| action | Dize | Evet | get – gönderilen CAPTCHA için yanıtı alır. |
| id | Tam sayı | Evet |
Şunun döndürdüğü CAPTCHA ID'si in.php. |
| json | Tam sayı Varsayılan: 0 | Hayır |
0 – yanıt düz metin olarak döndürülür 1 – yanıt JSON biçiminde döndürülür |
curl "http://127.0.0.1:8080/res.php?key=YOUR_API_KEY&action=get&id=CAPTCHA_ID"
CapSkip'ten token'ı aldıktan sonra onu hedef web sitesine doğru şekilde göndermelisiniz. Bunun nasıl çalıştığını anlamanın en iyi yolu, doğrulamayı normal bir kullanıcı olarak tamamlarken gönderilen istekleri gözlemlemektir. Çoğu tarayıcı geliştirici araçları sağlar; bu araçlarda bir Network giden istekleri incelemenizi sağlayan sekme.
Çoğu durumda token, bir POST isteğiyle gönderilir. Parametre adı şu olabilir: g-recaptcha-response, reCAPTCHA v2'ye benzer ya da şuna benzer bir şey: g-recaptcha-response-100000. Bazı uygulamalarda farklı bir parametre adı kullanılabilir.
Token'ın nasıl iletildiğini belirlemek için ağ isteklerini incelemeli ve ardından isteğinizi buna göre yapılandırmalısınız.
reCAPTCHA Enterprise
reCAPTCHA Enterprise, Google'ın reCAPTCHA sisteminin gelişmiş sürümüdür. Hem v2 hem de v3 modlarında çalışabilir ve bir etkileşimin insan mı yoksa otomatik mi olduğunu değerlendirme ve raporlama yeteneği dahil olmak üzere web sitesi yöneticilerine ek kontrol sağlar.
reCAPTCHA Enterprise Nasıl Çözülür?
İlk adım, web sitesinin reCAPTCHA'nın Enterprise sürümünü kullanıp kullanmadığını belirlemektir.
reCAPTCHA Enterprise'ın temel göstergeleri şunlardır:
Sayfa yüklenir
enterprise.jsyerineapi.js, örneğin:<script src="https://recaptcha.net/recaptcha/enterprise.js" async defer></script>
Web sitesinin JavaScript kodu şunu çağırır:
grecaptcha.enterprise.METHODyerinegrecaptcha.METHOD
Ardından, hangi uygulamanın kullanıldığını belirleyin: v2, Invisible v2 veya v3. Bu genellikle widget'ın nasıl render edildiğini ve sayfada nasıl davrandığını analiz ederek tespit edilebilir.
Doğru uygulamayı belirlemek için aşağıdaki akış şemasını izleyin. Vakaların büyük çoğunluğunda geçerlidir.

CAPTCHA parametrelerini reCAPTCHA v2 veya v3 için açıklanan şekilde tanımlayın.
v2 Enterprise uygulamaları için ek isteğe bağlı veri olabilir. Çoğu durumda bu, şurada tanımlanan özel bir dizedir: s veya data-s parametresi. Mevcutsa, bu değeri şunu kullanarak isteğinize dâhil edin: data-s parametre.
POST ve GET istek parametrelerinin listesi burada mevcuttur: reCAPTCHA V2 POST ve GET istek parametreleri
v3 Enterprise uygulamaları için şuna da ihtiyacınız olabilir: action değeri. Bulmak için, web sitesinin JavaScript kodunu inceleyin ve şunu bulun: grecaptcha.enterprise.execute() çağrısı. action parametresi genellikle bu fonksiyonun içinde iletilir. Şunu unutmayın action isteğe bağlıdır ve bazı durumlarda tanımsız (undefined) olabilir.
POST ve GET istek parametrelerinin listesi burada mevcuttur: reCAPTCHA V3 POST ve GET istek parametreleri
İsteğinizi şuraya gönderirken: /in.php uç noktası, ek parametreyi ekleyin: enterprise=1
Bundan sonra, reCAPTCHA v2 veya v3 çözerkenki gibi CapSkip API ile etkileşime girin. Token döndürüldükten sonra, hedef web sitesine kendi uygulamasına göre gönderin.
Cloudflare Turnstile
Cloudflare Turnstile, Cloudflare tarafından geliştirilen modern bir CAPTCHA alternatifidir. Bir ziyaretçinin insan olup olmadığını geleneksel görsel challenge'lara dayanmadan doğrular. Turnstile bağımsız bir widget olarak veya bir challenge sayfasının parçası olarak görünebilir ve minimum kullanıcı etkileşimiyle ya da hiç etkileşim olmadan çalışır.
İki yaygın Turnstile uygulaması vardır:
1. Bağımsız Turnstile Widget'ı
Bağımsız bir Turnstile widget'ı doğrudan bir web sitesi sayfasına gömülüdür ve genellikle bir formu otomatik gönderimlerden korur. Bu durumda:
Şunu çıkarın:
sitekeyfrom the page.Onu tam şeyle birlikte CapSkip API'sine gönderin:
pageurl.Token'ı aldıktan sonra, onu şuraya ekleyin:
cf-turnstile-responsealanı.Bazı uygulamalarda token'ın ayrıca şuraya yerleştirilmesi gerekebilir
g-recaptcha-responsealanı.Şurada bir callback tanımlıysa:
turnstile.render()yapılandırması, onu döndürülen token'la çalıştırın.
Ardından formu her zamanki gibi gönderin.
2. Cloudflare Challenge Sayfasında Turnstile
Bu, web sitesi Cloudflare üzerinden proxy'lendiğinde ve erişim vermeden önce bir Turnstile challenge sayfası sunduğunda meydana gelir. Bu durumda aşağıdaki parametreleri çıkarmanız gerekir:
cDatachlPageDataaction
Bu değerler API isteğinize dâhil edilmelidir. Ayrıca şunu kullanmalısınız: User-Agent token gönderilirken CapSkip API'si tarafından döndürülen değer.
Gerekli Parametreler Nasıl Çıkarılır?
Gerekli parametreleri çıkarmak için şunu geçersiz kılabilirsiniz: turnstile.render metodunu kullanın ve çağrıldığında iletilen argümanları yakalayın. Örneğin, aşağıdaki JavaScript kodunu sayfaya enjekte edin. Parametreleri başarıyla yakalamak için scriptin, Turnstile widget'ı yüklenmeden önce çalıştırılması gerekir.
const i = setInterval(()=>{
if (window.turnstile) {
clearInterval(i)
window.turnstile.render = (a,b) => {
let p = {
method: "turnstile",
key: "YOUR_API_KEY",
sitekey: b.sitekey,
pageurl: window.location.href,
data: b.cData,
pagedata: b.chlPageData,
action: b.action,
userAgent: navigator.userAgent,
json: 1
}
console.log(JSON.stringify(p))
window.tsCallback = b.callback
return 'foo'
}
}
},50)POST İstek Parametrelerinin Listesi
| Parametre | Tür | Gerekli | Açıklama |
|---|---|---|---|
| key | Dize | Evet | CapSkip API key'iniz. |
| method | Dize | Evet | turnstile – bir Cloudflare Turnstile isteği belirtir. |
| sitekey | Dize | Evet | Şunun değeri: data-sitekey hedef sayfada bulunan parametre. |
| pageurl | Dize | Evet | Turnstile doğrulamasının bulunduğu sayfanın tam URL'si. |
| action | Dize | Hayır |
Şurada tanımlanan isteğe bağlı action değeri: data-action öznitelik veya şuna iletilir: turnstile.render(). |
| data | Dize | Hayır |
Şunun değeri: cData şuraya aktarılan: turnstile.render() veya şurada tanımlanmış: data-cdata öznitelik. |
| pagedata | Dize | Hayır |
Şunun değeri: chlPageData şuraya aktarılan: turnstile.render(). |
| json | Tam sayı Varsayılan: 0 | Hayır |
0 – yanıt düz metin olarak döndürülür. 1 – yanıt JSON formatında döndürülür. |
| proxy | Dize | Hayır | Proxy adresi. IP kimlik doğrulaması için biçim: IP:PORT (örnek: 123.123.123.123:3128). Kullanıcı adı/parola kimlik doğrulaması için biçim: login:password@IP:PORT |
| proxytype | Dize | Hayır | Proxy türü. Desteklenen değerler: HTTP, HTTPS, SOCKS5, SOCKS5H. Varsayılan: HTTP ne zaman proxy sağlanır ancak proxytype atlanır. |
Turnstile gönder (bağımsız):
curl -X POST -d "key=YOUR_API_KEY&method=turnstile&sitekey=0x4AAAAAAABUYP0XeMJF0xoy&pageurl=https://example.com" http://127.0.0.1:8080/in.php
Turnstile Gönder (challenge – isteğe bağlı action, data, pagedata):
curl -X POST -d "key=YOUR_API_KEY&method=turnstile&sitekey=0x4AAAAAAABUYP0XeMJF0xoy&pageurl=https://example.com&action=managed&data=...&pagedata=..." http://127.0.0.1:8080/in.php
İstek başarılı olursa, CapSkip CAPTCHA kimliğini düz metin olarak döndürür: OK|12345
Eğer json=1 parametresi belirtilirse, yanıt JSON formatında döndürülür:
{
"status":1,
"request":"12345"
}Bir hata oluşursa, CapSkip bir hata kodu döndürür.
Sonucu şuradan almak için döndürülen ID'yi kullanın: /res.php API'nin uç noktası.
GET istek parametrelerinin listesi
| GET parametresi | Tür | Gerekli | Açıklama |
|---|---|---|---|
| key | Dize | Evet | CapSkip API key'iniz. |
| action | Dize | Evet | get – gönderilen CAPTCHA için yanıtı alır. |
| id | Tam sayı | Evet |
Şunun döndürdüğü CAPTCHA ID'si in.php. |
| json | Tam sayı Varsayılan: 0 | Hayır |
0 - yanıt düz metin olarak döndürülür. 1 - yanıt, şunu da içerecek şekilde JSON formatında döndürülür: userAgent değer. |
Cloudflare Turnstile için çözücü belirli bir tarayıcı User-Agent'ı kullanır ve token'ı gönderirken aynı User-Agent'ı göndermeniz gerekir. Şununla: json=1 yanıt şunu içerir: userAgent alan. Düz metin modunda, aynı değeri şuradan okuyun: X-Turnstile-User-Agent yanıt header'ı.
curl "http://127.0.0.1:8080/res.php?key=YOUR_API_KEY&action=get&id=CAPTCHA_ID"
GeeTest v3 Slider, GeeTest tarafından geliştirilen etkileşimli bir CAPTCHA'dır. Hızlı ve sorunsuz bir doğrulama deneyimi sunarken, insanları botlardan ayırmak için kullanıcıları bir kaydırma (slider) doğrulaması aracılığıyla doğrular.
CapSkip ile bir GeeTest v3 CAPTCHA'sını çözmek için, önce hedef web sitesinden gerekli CAPTCHA parametrelerini almanız gerekir. Gerekli parametreler şunlardır:
- gt: Genel web sitesi anahtarı (statik)
- challenge: Dinamik challenge değeri
- api_server: GeeTest API sunucu alan adı (isteğe bağlı)
Bu değerler genellikle web sitesi GeeTest'i başlattığında kullanılabilir.
Önemli: Yeni bir
challengedeğeri her çözme isteği için elde edilmelidir. CAPTCHA sayfaya yüklendikten sonra, öncekichallengegeçersiz hale gelir. Yenisini oluşturan isteği belirlemek için web sitesinin ağ isteklerini incelemelisinizchallengedeğeri ve her çözüm isteğini CapSkip'e göndermeden önce o isteği gerçekleştirin.
POST İstek Parametrelerinin Listesi
| Parametre | Tür | Gerekli | Açıklama |
|---|---|---|---|
| key | Dize | Evet* | CapSkip API key'iniz. Yalnızca şu durumda gereklidir: API Anahtarı Doğrulama etkindir. |
| method | Dize | Evet | Olmalı geetest. Bir GeeTest v3 CAPTCHA'sı gönderdiğinizi belirtir. |
| gt | Dize | Evet | The gt hedef web sitesinden elde edilen değer. |
| challenge | Dize | Evet | The challenge hedef web sitesinden elde edilen değer. Her çözüm isteği için yeni bir değer elde edilmelidir. |
| pageurl | Dize | Evet | GeeTest CAPTCHA'sını içeren sayfanın tam URL'si. |
| api_server | Dize | Hayır | Hedef web sitesi tarafından kullanılan GeeTest API sunucu alan adı (örneğin api.geetest.com veya api-na.geetest.com). |
| json | Tam sayı Varsayılan: 0 | Hayır | 0 yanıtı düz metin olarak döndürür. 1 yanıtı JSON olarak döndürür. |
| proxy | Dize | Hayır | Proxy adresi. IP kimlik doğrulaması için biçim: IP:PORT (örnek: 123.123.123.123:3128). Kullanıcı adı/parola kimlik doğrulaması için biçim: login:password@IP:PORT. |
| proxytype | Dize | Hayır | Proxy türü. Desteklenen değerler: HTTP, HTTPS, SOCKS5, SOCKS5H. Varsayılan: HTTP ne zaman proxy sağlanır ancak proxytype atlanır. |
CapSkip API uç noktanıza bir HTTP GET veya POST isteği gönderin (/in.php) ile method=geetest. Önceki adımda elde edilen gerekli GeeTest parametrelerini, CAPTCHA'yı içeren sayfanın tam URL'siyle birlikte ekleyin.
curl -X POST \ -d "key=YOUR_API_KEY" \ -d "method=geetest" \ -d "gt=f1ab2cdefa3456789012345b6c78d90e" \ -d "challenge=12345678abc90123d45678ef90123a456b" \ -d "pageurl=https://www.example.com/" \ -d "api_server=api-na.geetest.com" \ http://127.0.0.1:8080/in.php
Her şey başarılı olursa, CapSkip CAPTCHA ID'sini düz metin olarak döndürür: OK|212
Eğer json=1 parametresi belirtilirse, yanıt JSON formatında döndürülür:
{
"status": 1,
"request": "212"
}Aksi takdirde, CapSkip uygun bir hata kodu döndürür.
Yaklaşık şu kadar bekleyin: 5 saniye, ardından şuraya bir HTTP GET isteği gönderin: res.php sonucu almak için uç nokta.
GET istek parametrelerinin listesi
| Parametre | Tür | Gerekli | Açıklama |
|---|---|---|---|
| key | Dize | Evet* | CapSkip API key'iniz. Yalnızca şu durumda gereklidir: API Anahtarı Doğrulama etkindir. |
| action | Dize | Evet | Belirtin get CAPTCHA çözümünü almak için. |
| id | Tam sayı | Evet | Şunun tarafından döndürülen CAPTCHA ID'si: in.php istek. |
| json | Tam sayı Varsayılan: 0 | Hayır | 0 yanıtı düz metin olarak döndürür. 1 yanıtı JSON olarak döndürür. |
curl "http://127.0.0.1:8080/res.php?key=YOUR_API_KEY&action=get&id=212&json=1"
CAPTCHA başarıyla çözüldüyse, CapSkip çözümü JSON formatında döndürür:
{
"status": 1,
"request": "{\"geetest_challenge\":\"1a2b3456cd67890e12345fab678901c2de\",\"geetest_validate\":\"09fe8d7c6ba54f32e1dcb0a9fedc8765\",\"geetest_seccode\":\"12fe3d4c56789ba01f2e345d6789c012|jordan\"}"
}CAPTCHA henüz çözülmediyse, CapSkip şunu döndürür: CAPCHA_NOT_READY
5 saniye bekleyin ve isteği tekrarlayın. Bir hata oluşursa, CapSkip uygun bir hata kodu döndürür. İsteğinizi hedef web sitesine gönderirken aşağıdaki alanları kullanarak CapSkip tarafından döndürülen değerleri kullanın:
geetest_challengegeetest_validategeetest_seccode
Proxy Kullanımı
reCAPTCHA v2, v3, Invisible, Enterprise ve Cloudflare için her görevle birlikte bir proxy gönderebilirsiniz. CapSkip, CapSkip uygulamasında yapılandırılan proxy havuzunu kullanmak yerine CAPTCHA'yı o proxy üzerinden çözer.
Bu, hedef web sitesi CAPTCHA token'ının kendi isteklerinizle aynı IP adresinden oluşturulduğunu kontrol ettiğinde faydalıdır; örneğin Cloudflare arkasındaki siteler, katı reCAPTCHA skorlaması veya coğrafi kısıtlamalı sayfalar.
POST İstek Parametrelerinin Listesi
| Parametre | Tür | Gerekli | Açıklama |
|---|---|---|---|
| proxy | Dize | Hayır | Proxy adresi. IP kimlik doğrulaması için biçim: IP:PORT (örnek: 123.123.123.123:3128). Kullanıcı adı/parola kimlik doğrulaması için biçim: login:password@IP:PORT |
| proxytype | Dize | Hayır | Proxy türü. Desteklenen değerler: HTTP, HTTPS, SOCKS5, SOCKS5H. Varsayılan: HTTP ne zaman proxy sağlanır ancak proxytype atlanır. |
Hata Kodları
| Kod | Anlamı |
|---|---|
ERROR_KEY_DOES_NOT_EXIST | Geçersiz API anahtarı. |
ERROR_WRONG_USER_KEY | API anahtarı eksik veya boş. |
ERROR_WRONG_METHOD | Geçersiz HTTP yöntemi veya action parametre. |
ERROR_WRONG_ID_FORMAT | Geçersiz captcha ID formatı. |
ERROR_BAD_PARAMETERS | Gerekli parametreler eksik veya geçersiz. |
ERROR_UPLOAD | Görüntü verisi sağlanmadı veya yükleme başarısız oldu. |
ERROR_INVALID_IMAGE | Geçersiz görsel formatı veya bozuk görsel verisi. |
ERROR_INVALID_BASE64 | Geçersiz base64 kodlaması. |
ERROR_TOO_BIG_CAPTCHA_FILESIZE | Görsel boyutu 600 kB'yi aşıyor veya boyutlar 1000px'i aşıyor. |
ERROR_CAPTCHA_UNSOLVABLE | Captcha çözülemedi. Yeni bir görev gönderin ve yeniden deneyin. |
ERROR_GOOGLEKEY | Geçersiz googlekey parametre. |
ERROR_PAGEURL | Geçersiz pageurl parametre. |
CAPCHA_NOT_READY | captcha hâlâ işleniyor. Sorgulamaya devam edin. |
| (boş yanıt) | Sonuç zaten alınmış veya ID mevcut değil. |
