Utiliser l’API de tâches CAPTCHA dans Make
Créez la tâche une seule fois avec le module HTTP de Make, enregistrez son identifiant et vérifiez-la avec une requête GET distincte. Acheminez séparément les tâches ready, failed et inachevées. Il s’agit d’une intégration HTTP manuelle, et non d’une application solvethree native ni d’un webhook.
Sur cette page
Configurer la requête de création
Commencez par configurer un profil actif pour le nom d’hôte cible dans votre espace de travail. Envoyer site et action ne crée pas de profil. Consultez la configuration du profil de site si la cible n’est pas encore configurée.
- 1.
Configurez l’authentification HTTP v4
Choisissez le type d’authentification
API keyet créez un trousseau d’identifiants. Définissez la clé surBearersuivi d’un espace et de votre clé API d’espace de travail, l’emplacement surIn the headeret le nom du paramètre surAuthorization. Limitez les origines de service autorisées àhttps://api.solvethree.com. Conservez la clé dans le trousseau plutôt que de la transmettre dans les données du scénario. - 2.
Saisissez les paramètres de la requête
Utilisez la méthode, l’URL, le paramètre de requête, l’en-tête et le corps JSON indiqués ci-dessous. Saisissez chaque élément dans le champ correspondant du module. Seul le contenu de
bodydoit figurer dans le contenu JSON de la requête ; l’exemple complet est une configuration explicative, pas un blueprint Make importable.
{
"method": "POST",
"url": "https://api.solvethree.com/v1/tasks",
"query": {
"waitMs": "0"
},
"headers": {
"Content-Type": "application/json"
},
"body": {
"site": "accounts.example.com",
"action": "login",
"proxy": "http://USER:PASSWORD@PROXY:PORT",
"requestId": "one-stable-id-for-this-logical-job"
},
"authentication": {
"type": "API key",
"Key": "Bearer YOUR_PRIVATE_WORKSPACE_KEY",
"API key placement": "In the header",
"API key parameter name": "Authorization",
"Allowed service origins": [
"https://api.solvethree.com"
]
}
}- Remplacez
sitepar le nom d’hôte configuré, et non par une URL complète. Définissezactionsur l’action utilisée par le parcours cible. - Remplacez
proxypar l’URL de votre proxy. La requête exige exactement un des champsproxyouproxyCandidates; l’exemple utilise un seul proxy. - Attribuez à chaque nouveau traitement logique son propre
requestIdet conservez-le pour la récupération. La valeur de l’exemple est une valeur de remplacement, pas un identifiant à réutiliser pour des traitements sans rapport. - N’ajoutez pas
typeniurlà cette requête reCAPTCHA. SirecaptchaTypeest omis, sa valeur par défaut estenterprise-v3.
Enregistrez l’identifiant de la tâche et configurez GET
Après une réponse de création réussie, enregistrez l’identifiant de tâche renvoyé en l’associant au traitement logique avant de poursuivre. Ajoutez un module de requête HTTP distinct pour récupérer cette tâche.
| Paramètre | Valeur |
|---|---|
| Moyen | GET |
| URL | https://api.solvethree.com/v1/tasks/:id, en remplaçant :id par l’identifiant de tâche enregistré |
| Authentification | Clé API ; réutilisez le trousseau d’identifiants de la requête de création |
| Corps de la requête | Aucun |
Traitez les réponses HTTP d’échec avant d’acheminer selon le statut de la tâche. Une erreur HTTP n’est pas la même chose qu’une tâche dont le statut est failed ; ne traitez pas une réponse illisible ou d’échec comme un autre résultat pending.
Acheminez selon le statut de tâche renvoyé
Une fois GET réussi, ajoutez un routeur avec des filtres explicites sur le status renvoyé. N’envoyez pas toutes les réponses HTTP réussies vers la branche de traitement de la solution.
| Filtre | Action |
|---|---|
status est égal à ready | Transmettez la solution au client chargé de la soumission et fermez le parcours d’interrogation de cette tâche. |
status est égal à failed | Enregistrez errorCode et error, puis cessez d’interroger cette tâche. Les résolutions échouées sont remboursées. |
status est égal à pending OU status est égal à solving | Conservez l’identifiant de tâche enregistré et terminez cette exécution d’interrogation. Reprenez avec GET lors d’une exécution ultérieure. |
Gardez un filtre explicite pour les tâches inachevées plutôt que d’en faire une branche fourre-tout. Un statut manquant ou inattendu doit être examiné, et non interrogé indéfiniment en silence. Dans la branche d’échec, examinez l’erreur signalée avant de créer une autre tâche ; réessayer avec les mêmes données invalides ne résoudra rien.
Reprenez avec l’identifiant enregistré au lieu de répéter POST
Une conception simple et bornée effectue un GET par exécution d’interrogation. Enregistrez le travail inachevé dans un emplacement accessible à l’exécution suivante ; ne vous fiez pas à un identifiant de tâche qui n’existe que dans l’exécution en cours.
- 1.
Choisissez le parcours d’entrée
Si le traitement possède déjà un identifiant de tâche, passez directement à GET. Seul un nouveau traitement sans tâche existante doit emprunter le parcours de création.
- 2.
Terminez les exécutions inachevées
Pour
pendingousolving, conservez l’identifiant de tâche et terminez l’exécution. À la reprise, récupérez ce même identifiant. Marquez les tâches terminées comme closes pour que les exécutions d’interrogation ultérieures ne traitent pas à nouveau leurs résultats. - 3.
Limitez tout répéteur
Si vous ajoutez plutôt un répéteur, attribuez-lui un nombre maximal fini de répétitions et ne répétez que GET pour l’identifiant enregistré. Empêchez toute interrogation ou tout traitement de résultat supplémentaire après
readyoufailed. Atteindre la limite de répétitions signifie qu’il faut s’arrêter et conserver l’identifiant, et non créer une tâche de remplacement.
Transmettez le résultat prêt à un client prenant en charge les proxys
Pour cette requête reCAPTCHA, la valeur à soumettre est solution.token, et non l’identifiant de tâche. Utilisez l’identité de navigateur userAgent et secChUa renvoyée avec le proxy ayant permis la résolution lors de la soumission à la cible prévue.
Ne supposez pas que le module HTTP de Make peut utiliser le proxy du client employé par le solveur pour cette requête finale. Transmettez le résultat prêt à un client qui prend en charge le proxy et l’identité de navigateur requis. ready signifie que la solution a été générée ; son acceptation est déterminée par la réponse de la cible à la soumission suivante.
Sources et référence de l’API
Lancez votre première tâche.
Démarrez avec $5 de crédit dans votre espace de travail.