Skip to main content
Cet article présentera une méthode d’intégration de l’API d’identification des protocoles Recaptcha3, permettant aux utilisateurs de valider sans avoir à reconnaître et cliquer sur les images de captcha Recaptcha3, en soumettant simplement la clé du site pour réaliser un décodage automatique en arrière-plan.

Processus de demande

Pour utiliser l’API d’identification des protocoles Recaptcha3, 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 vous invitant à 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 ; en cas de quota insuffisant, vous pouvez recharger le solde général dans le tableau de bord.
📘 Documentation complète : API d’identification des protocoles Recaptcha3 →

Utilisation de base

Tout d’abord, comprenons la méthode d’utilisation de base. Comparé à Recaptcha2, nous devons passer un paramètre supplémentaire page_action, qui doit être récupéré dans le code. L’URL de démonstration de la vitesse du réseau est : https://recaptcha-demo.appspot.com/recaptcha-v3-request-scores.php, voici une méthode pour l’obtenir :

Méthode rapide :

Ouvrez f12, puis recherchez .execute( dans la page Element. Dans la zone encadrée en rouge, nous pouvons voir le paramètre action, et en plus de l’exécution, il y a une chaîne de caractères, qui est également le contenu nécessaire ci-dessous, comme illustré dans l’image suivante.

Ensuite, il faut entrer l’URL du site nécessitant le traitement du captcha pour obtenir le résultat traité. Il faut d’abord transmettre un champ website_url, puis entrer le paramètre website_key, qui peut être obtenu ci-dessus, également une chaîne de caractères après l’exécution. Nous pouvons ensuite remplir les informations correspondantes sur l’interface, comme montré dans l’image suivante :

Nous pouvons voir ici que nous avons configuré 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 configuré le corps de la requête, y compris :
  • page_action : à obtenir dans le code du site nécessitant le captcha.
  • website_url : l’URL du site nécessitant le traitement du captcha.
  • website_key : l’identifiant de la clé du site dans Recaptcha3.
Après sélection, vous pouvez constater que le code correspondant a également été généré à droite, comme illustré dans l’image suivante :

Cliquez sur le bouton « Essayer » pour effectuer un test, comme montré dans l’image ci-dessus, et 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 Recaptcha3.
  • started_at, finished_at : le temps de début et de fin du traitement de cette demande, en timestamp Unix (secondes, flottant).
  • elapsed : le temps total de traitement (secondes).
On peut voir que nous avons obtenu le résultat de la vérification du Recaptcha3, que nous pouvons ensuite utiliser pour simuler une soumission POST ou GET au site cible, à usage unique, avec une durée de validité de 120 secondes, il est conseillé de l’utiliser dans les 60 secondes. Voici une brève introduction à une méthode pour soumettre le token généré au site cible : Appel du code Python correspondant à la vérification du token :
Ainsi, nous pouvons obtenir le résultat :
On peut voir que success indique le résultat du traitement de la validation ici, ce qui signifie que nous avons réussi à passer la validation du captcha Recaptcha3. 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 en Python est le suivant :

Mode asynchrone (async)

Par défaut, l’API est synchrone et bloquante : une demande 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 demande. En passant async: true, l’interface renverra immédiatement un task_id sans bloquer l’attente :
Pour vérifier activement l’avancement, 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 de la facturation : 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 d’un résultat réussi (conforme au comportement existant et au prix du mode synchrone). Le serveur avancera les tâches de manière autonome, mais ne facturera pas à l’avance en raison d’une finalisation en arrière-plan. Si la tâche n’est pas réussie dans les 120 secondes, elle sera arrêtée avec un HTTP 504 timeout, sans facturation. /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 demandes, 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 Recaptcha3 pour permettre aux utilisateurs de ne pas avoir à reconnaître et cliquer sur les images de captcha Recaptcha3, mais simplement de soumettre la clé du site pour réaliser le décodage automatique en arrière-plan et compléter la validation. 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.