Résoudre reCAPTCHA v3 standard avec l’API

Par solvethree3 min de lecture

Pour reCAPTCHA v3 standard, définissez recaptchaType sur v3 dans le corps de la tâche. Pour reCAPTCHA Enterprise v3, utilisez enterprise-v3, qui est aussi la valeur par défaut lorsque vous omettez le champ.

Sur cette page

Préparer le profil, le nom d’hôte, l’action et le proxy

La version v3 standard nécessite elle aussi un profil de site actif accessible à votre espace de travail. Configurez le site cible dans la console avant de créer une tâche ; l’envoi d’un nom d’hôte et d’une action ne crée pas le profil.

  • site : le nom d’hôte cible, tel que accounts.example.com, et non l’URL complète d’une page.
  • action : l’action utilisée par l’intégration reCAPTCHA de la cible. Remplacez login dans l’exemple si la cible utilise une autre valeur. Consultez comment trouver l’action.
  • proxy ou proxyCandidates : fournissez exactement l’un des deux. L’exemple utilise un seul proxy. Si vous utilisez plutôt des candidats, la liste accepte au maximum douze URL de proxy HTTP ou HTTPS distinctes, sans chemin, paramètres de requête ni fragment.

Envoyer la tâche v3 standard

Envoyez ce corps JSON à POST https://api.solvethree.com/v1/tasks. Authentifiez-vous avec une clé API d’espace de travail dans l’en-tête Authorization en utilisant le schéma Bearer. Conservez la clé sur votre serveur.

Standard v3 · corps de la tâche
{
  "site": "accounts.example.com",
  "action": "login",
  "recaptchaType": "v3",
  "proxy": "http://user:[email protected]:8080",
  "requestId": "v3-login-001"
}

recaptchaType doit se trouver au premier niveau, aux côtés de site, action et proxy. N’ajoutez pas de champ type ni url pour reCAPTCHA.

Remplacez le nom d’hôte, l’action et le proxy de l’exemple par les valeurs de votre cible. Utilisez un nouveau requestId pour chaque nouvelle résolution logique. Si la création dépasse le délai, renvoyez le même corps de tâche avec le même identifiant pour récupérer la tâche existante plutôt que d’en créer une autre. Réutiliser cet identifiant avec des paramètres différents provoque un conflit.

Attendre que la solution soit prête, puis envoyer le jeton

  1. 1.

    Vérifier d’abord la réponse HTTP

    Traitez une réponse HTTP qui n’indique pas un succès avant de lire son corps comme un résultat de tâche. Vérifiez le statut et corrigez l’erreur de requête signalée.

  2. 2.

    Récupérer la tâche jusqu’à sa fin

    La création attend jusqu’à 15 secondes par défaut ; prévoyez une marge supplémentaire dans le délai d’attente de votre client pour les échanges réseau. Si l’état est pending ou solving, récupérez la tâche avec GET /v1/tasks/:id. L’interrogation GET n’attend pas par défaut ; pour une interrogation longue, passez waitMs avec une valeur maximale de 15000 comme paramètre de requête URL, et non comme champ JSON. Arrêtez l’interrogation à ready ou failed. Pour failed, examinez errorCode et error avant de décider si une nouvelle tentative est pertinente.

  3. 3.

    Utiliser la solution prête

    Envoyez solution.token à la cible prévue, et non l’identifiant de tâche. Utilisez les valeurs userAgent et secChUa renvoyées, ainsi que le proxy ayant permis la résolution. Ne changez pas d’adresse IP et ne remplacez pas l’identité de navigateur par une identité sans rapport entre la résolution et l’envoi.

Un jeton prêt ne prouve ni un score reCAPTCHA particulier ni l’acceptation par la cible. reCAPTCHA v3 produit un score de risque et une action que la cible évalue côté serveur ; vérifiez la réponse de la cible à la requête qui envoie le jeton.

Lancez votre première tâche.

Démarrez avec $5 de crédit dans votre espace de travail.

Créer un espace de travail
Résoudre reCAPTCHA v3 standard avec l’API · solvethree