Skip to main content
Cet article présentera une documentation d’intégration pour l’API de reconnaissance de protocole Recaptcha2, qui permet aux utilisateurs de valider sans avoir à reconnaître et cliquer sur les images de captcha Recaptcha2, il leur suffit de soumettre la clé du site Web pour réaliser un décodage automatique en arrière-plan et compléter la validation.

Processus de demande

Pour utiliser l’API de reconnaissance de protocole Recaptcha2, commencez par obtenir votre jeton API sur le tableau de bord d’Ace Data Cloud pour le garder en réserve. Si vous n’êtes pas encore connecté ou inscrit, vous serez automatiquement redirigé vers la page de connexion qui vous invite à vous inscrire et à vous connecter, après quoi vous serez automatiquement renvoyé à la page actuelle. Un jeton API suffit pour appeler tous les services de la plateforme, sans avoir à en demander un pour chaque service. La première demande vous donnera un quota gratuit pour une expérience sans frais ; si le quota est insuffisant, vous pouvez recharger le solde général dans le tableau de bord.
📘 Documentation complète : API de reconnaissance de protocole Recaptcha2 →

Utilisation de base

Tout d’abord, comprenons la méthode d’utilisation de base, qui consiste à entrer l’URL du site Web contenant le captcha à traiter, ce qui vous permettra d’obtenir le résultat traité. Vous devez d’abord transmettre un champ website_url, notre site d’exemple est : https://www.google.com/recaptcha/api2/demo, nous devons obtenir la website_key sur la page website_url, pour cela, ouvrez cette page, appuyez sur F12 pour accéder à la console, puis effectuez une recherche globale dans l’onglet Éléments pour recaptcha-demo, nous pouvons obtenir le résultat suivant :

La chaîne de caractères correspondant à data-sitekey est la valeur de website_key, voici les résultats des paramètres spécifiques :

Nous pouvons voir ici que nous avons défini les en-têtes de requête, y compris :
  • accept : le format de réponse souhaité, ici rempli avec application/json, c’est-à-dire au format JSON.
  • authorization : la clé pour appeler l’API, que vous pouvez sélectionner directement après la demande.
De plus, nous avons défini le corps de la requête, y compris :
  • website_url : l’URL du site Web contenant le captcha à traiter.
  • website_key : l’identifiant de la clé du site dans Recaptcha2.
  • proxy : optionnel, apportez votre propre proxy (Bring Your Own Proxy). Une fois configuré, le service utilisera l’IP du proxy que vous fournissez pour résoudre le captcha, afin de contrôler la qualité de l’IP de sortie (par exemple, éviter que l’IP d’un proxy public soit bloquée par le site cible et renvoie 410 Gone). Le format est scheme://[user:pass@]host:port, scheme supporte http/https/socks4/socks5, par exemple http://user:pass@1.2.3.4:8080. Si non rempli, le proxy par défaut de la plateforme sera utilisé.
Après avoir fait votre choix, vous pouvez constater que le code correspondant a également été généré à droite, comme illustré ci-dessous :

Cliquez sur le bouton « Essayer » pour effectuer un test, comme montré sur l’image ci-dessus, ici nous avons obtenu le résultat suivant :
Les résultats de retour contiennent plusieurs champs, décrits comme suit :
  • token, le résultat de la vérification après le traitement de la tâche Recaptcha2.
  • started_at, finished_at : le temps de début et de fin du traitement de cette demande, horodatage Unix (secondes, flottant).
  • elapsed : le temps total de traitement (secondes).
On peut voir que nous avons obtenu le résultat de vérification du traitement de Recaptcha2, que nous pouvons ensuite utiliser pour POST ou simuler une soumission au site cible, à usage unique, valable 120 secondes, recommandé d’utiliser dans les 60 secondes. Ensuite, nous fournirons un extrait de code Python pour soumettre le token traité au site cible afin de passer le Recaptcha2. Tout d’abord, nous devons comprendre comment le site envoie la requête POST, afin de pouvoir y insérer le token généré. Nous devons d’abord ouvrir la console F12, puis effectuer manuellement une vérification, et enfin, nous pouvons voir que le site a envoyé une requête POST. Nous devons simplement examiner la construction de cette requête POST, le processus spécifique est comme suit :
  • D’abord, effectuez la vérification manuellement, comme illustré ci-dessous :

  • Ensuite, cliquez sur soumettre, regardez les changements dans le réseau de la console, comme illustré ci-dessous :

  • Analysez la construction de la requête POST soumise cette fois, vous pouvez finalement faire un clic droit sur cette requête pour copier le code CURL, comme illustré ci-dessous :

D’après l’analyse de l’image ci-dessus, l’URL de cette requête POST est : https://www.google.com/recaptcha/api2/demo, nous devons simplement soumettre le paramètre g-recaptcha-response, puis nous devons simplement transmettre le token traité dans les données ci-dessous, le code CURL spécifique pour appeler le token pour la vérification est le suivant :
Le code Python correspondant pour appeler la vérification du token est le suivant :
Ensuite, nous exécutons le code et observons que la console affiche le résultat suivant :

Enfin, nous avons réussi à passer la vérification du protocole Recaptcha2. De plus, si vous souhaitez générer le code d’intégration correspondant, vous pouvez le copier directement, par exemple, le code CURL est le suivant :
Le code d’intégration Python est le suivant :

Mode asynchrone (async)

Par défaut, l’API est synchrone et bloquante : une requête attendra jusqu’à ce que le traitement du token soit terminé avant de renvoyer une réponse. Si vous effectuez une rotation de plusieurs solveurs (multi-solver rotation) et souhaitez « soumettre une tâche et obtenir immédiatement un task_id, puis planifier d’autres solveurs et revenir plus tard pour lire les résultats », vous pouvez passer async: true dans le corps de la requête. En passant async: true, l’interface renverra immédiatement un task_id, sans bloquer l’attente :
Pour vérifier activement la progression, vous pouvez utiliser ce task_id pour interroger POST /captcha/tasks (il est conseillé de le faire toutes les 3 à 5 secondes). Cette interface ne déclenchera ni n’accélérera le traitement des tâches ; même sans requête, en cas de perte de connexion ou de fermeture du client, le serveur continuera à traiter :
En cours de traitement, cela renverra status: processing :
Une fois le traitement terminé, cela renverra status: ready et le token :
Explication des frais : en mode asynchrone, la création de tâches et la lecture de l’état « en cours de traitement » ne sont pas facturées ; le client est facturé une fois lors de la première lecture réussie des résultats (conforme au comportement actuel et au prix du mode synchrone). Le serveur avancera les tâches de manière autonome, mais ne facturera pas à l’avance si le traitement en arrière-plan est terminé. Si la tâche n’est pas réussie dans les 120 secondes, elle sera arrêtée avec un HTTP 504 timeout, sans frais. /captcha/tasks n’est pas responsable de l’avancement des tâches.

Gestion des erreurs

Lors de l’appel de l’API, si une erreur se produit, l’API renverra le code d’erreur et les informations correspondantes. Par exemple :
  • 400 token_mismatched : Mauvaise requête, probablement en raison de paramètres manquants ou invalides.
  • 400 api_not_implemented : Mauvaise requête, probablement en raison de paramètres manquants ou invalides.
  • 401 invalid_token : Non autorisé, token d’autorisation invalide ou manquant.
  • 429 too_many_requests : Trop de requêtes, vous avez dépassé la limite de taux.
  • 500 api_error : Erreur interne du serveur, quelque chose s’est mal passé sur le serveur.

Exemple de réponse d’erreur

Conclusion

Grâce à ce document, vous avez compris comment utiliser l’API de reconnaissance du protocole Recaptcha2 pour permettre aux utilisateurs de ne pas avoir à reconnaître et cliquer sur les images de captcha Recaptcha2, mais simplement de soumettre la clé du site pour réaliser le décodage automatique en arrière-plan et compléter la vérification. Nous espérons que ce document vous aidera à mieux intégrer et utiliser cette API. Si vous avez des questions, n’hésitez pas à contacter notre équipe de support technique.