In molti casi reCAPTCHA V2 Callback ostacola l'accessibilità, frustra gli utenti, limita l'accesso alle informazioni aperte, rende difficile il test di applicazioni e siti. Utilizzate il risolutore di reCAPTCHA V2 Callback per aggirarlo automaticamente.
Demo del reCAPTCHA V2 Callback
Questa pagina spiega come viene visualizzato reCAPTCHA V2 Callback e come funziona la verifica di reCAPTCHA V2 Callback. A volte non c'è un tasto da schiacciare per inviare, quindi va utilizzata una funzione callback che viene eseguita quando il reCAPTCHA è risolto.
How to solve reCAPTCHA V2 Callback
Open developer's console in your browser and find element with
data-sitekey
attribute.<div class="g-recaptcha" data-sitekey="6LfD3PIbAAAAAJs_eEHvoOl75_83eXSqpPSRFJ_u" id="recaptcha"></div>
Send
sitekey
andpageurl
to our API.With SDK (recommended):
PHP
// https://github.com/2captcha/2captcha-php require(__DIR__ . '/../src/autoloader.php'); $solver = new \TwoCaptcha\TwoCaptcha('YOUR_API_KEY'); try { $result = $solver->recaptcha([ 'sitekey' => '6LfD3PIbAAAAAJs_eEHvoOl75_83eXSqpPSRFJ_u', 'url' => 'https://2captcha.com/demo/recaptcha-v2-callback', ]); } catch (\Exception $e) { die($e->getMessage()); } die('Captcha solved: ' . $result->code);
Python
# https://github.com/2captcha/2captcha-python import sys import os sys.path.append(os.path.dirname(os.path.dirname(os.path.realpath(__file__)))) from twocaptcha import TwoCaptcha api_key = os.getenv('APIKEY_2CAPTCHA', 'YOUR_API_KEY') solver = TwoCaptcha(api_key) try: result = solver.recaptcha( sitekey='6LfD3PIbAAAAAJs_eEHvoOl75_83eXSqpPSRFJ_u', url='https://2captcha.com/demo/recaptcha-v2-callback') except Exception as e: sys.exit(e) else: sys.exit('solved: ' + str(result))
Java
// https://github.com/2captcha/2captcha-java package examples; import com.twocaptcha.TwoCaptcha; import com.twocaptcha.captcha.reCAPTCHA; public class reCAPTCHAV2Example { public static void main(String[] args) { TwoCaptcha solver = new TwoCaptcha("YOUR_API_KEY"); ReCaptcha captcha = new ReCaptcha(); captcha.setSiteKey("6LfD3PIbAAAAAJs_eEHvoOl75_83eXSqpPSRFJ_u"); captcha.setUrl("https://2captcha.com/demo/recaptcha-v2-callback"); try { solver.solve(captcha); System.out.println("Captcha solved: " + captcha.getCode()); } catch (Exception e) { System.out.println("Error occurred: " + e.getMessage()); } } }
C#
// https://github.com/2captcha/2captcha-csharp using System; using System.Linq; using TwoCaptcha.Captcha; namespace TwoCaptcha.Examples { public class reCAPTCHAV2Example { public void Main() { TwoCaptcha solver = new TwoCaptcha("YOUR_API_KEY"); ReCaptcha captcha = new ReCaptcha(); captcha.SetSiteKey("6LfD3PIbAAAAAJs_eEHvoOl75_83eXSqpPSRFJ_u"); captcha.SetUrl("https://2captcha.com/demo/recaptcha-v2-callback"); try { solver.Solve(captcha).Wait(); Console.WriteLine("Captcha solved: " + captcha.Code); } catch (AggregateException e) { Console.WriteLine("Error occurred: " + e.InnerExceptions.First().Message); } } } }
Go
// https://github.com/2captcha/2captcha-go package main import ( "fmt" "log" "github.com/2captcha/2captcha-go" ) func main() { client := api2captcha.NewClient("API_KEY") captcha := api2captcha.ReCaptcha{ SiteKey: "6LfD3PIbAAAAAJs_eEHvoOl75_83eXSqpPSRFJ_u", Url: "https://2captcha.com/demo/recaptcha-v2-callback", } code, err := client.Solve(captcha.ToRequest()) if err != nil { log.Fatal(err); } fmt.Println("code "+code) }
C++
// https://github.com/2captcha/2captcha-cpp #include <cstdio> #include "curl_http.hpp" #include "api2captcha.hpp" int main (int ac, char ** av) { api2captcha::curl_http_t http; http.set_verbose (true); api2captcha::client_t client; client.set_http_client (&http); client.set_api_key (API_KEY); api2captcha::recaptcha_t cap; cap.set_site_key ("6LfD3PIbAAAAAJs_eEHvoOl75_83eXSqpPSRFJ_u"); cap.set_url ("https://2captcha.com/demo/recaptcha-v2-callback"); try { client.solve (cap); printf ("code '%s'\n", cap.code ().c_str ()); } catch (std::exception & e) { fprintf (stderr, "Failed: %s\n", e.what ()); } return 0; }
Ruby
# https://github.com/2captcha/2captcha-ruby require 'api_2captcha' client = Api2Captcha.new("YOUR_API_KEY") result = client.recaptcha_v2({ googlekey: '6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-', pageurl: 'https://mysite.com/page/with/recaptcha_v2' })
Wait for the result, which may look like this:
03AGdBq27lvCYmKkaqDdxWLfMe3ovADGfGlSyiR-fN_EJrZGniTAmdH1XSjK8ralsctfjOLX2K0T7dJfxPqqga8dtSG2Lmns8Gk2ckcU6PQzUFieBqrtpkr5PPwnngew0Rnot2ik1y8m202u6pHTIquExlEYSlzS8vfoyPPt8fCf-Zrbu8vWkiY8Ogj17ommHMgkguZbmEyOdfLTXzhRko-a655_jJdCMjEtMxva-b78DnGlXu9d0o6vEmrw9n8ABu4lLsWnIbYPH0beXRRIkUE3si64Xhwkh1aO3L1HaIR3sfR0vOs3GV1OBzry_tFsZM0ZhSQovKJwjLlotrYajyTSRv3hgvXtLlLxXzbAwgeI91-wM7AFEte0uO_DhcNajxZr7E50wU9vuAe_drGWe4q-hNx4PQPenjaw
Manually:
Send GET or POST request to our API URL:
https://2captcha.com/in.php
withmethod
set touserrecaptcha
and provide the value found on previous step as value for googlekey and full page URL as value forpageurl
.
Request example:
GET https://2captcha.com/in.php?key=YOUR_API_KEY&method=userrecaptcha&googlekey=6LfD3PIbAAAAAJs_eEHvoOl75_83eXSqpPSRFJ_u&pageurl=http://2captcha.com/demo/recaptcha-v2-callback
If everything is fine server will return the ID of your captcha:
OK|2122988149
Otherwise server will return an error code.After 15-20 seconds send GET request to get the result:
GET https://2captcha.com/res.php?key=YOUR_API_KEY&action=get&id=2122988149
If captcha is already solved server will respond with the answer token:OK|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
If captcha is not solved yet server will returnCAPCHA_NOT_READY
result. Repeat your request in 5 seconds. If something went wrong server will return an error code.
In developer's console, execute the callback function
verifyDemoRecaptcha
passing the token string as an argument like:verifyDemoRecaptcha('TOKEN')
Please note that each website has own reCAPTCHA implementation with unique callback definition and the callback function name will be different from our demo, or even an anonymous function can be used. This code snippet can help you to find the callback definition.