Temu Grid Captcha
Aperçu
Temu Grid Captcha est un captcha de sélection en grille : la page affiche une grille de tuiles et le solveur doit renvoyer quelles cellules cliquer (indices de base 0, ordre ligne par ligne : de gauche à droite, de haut en bas).
Le champ task.image encode l'image de grille comme une seule chaîne Base64. Aucun champ other supplémentaire n'est nécessaire.

1. Créer une tâche
Format d'envoi d'image
Image de grille

Requête
POST https://api.achicaptcha.com/createTask
Paramètres
| Nom du paramètre | Type de données | Requis ? | Description |
|---|---|---|---|
clientKey | string | yes | API key |
task.type | string | yes | GridCaptcha |
task.subType | string | yes | temu |
task.image | string | yes | Image de grille encodée en Base64 |
Exemple de requête
POST /createTask HTTP/1.1
Host: api.achicaptcha.com
Content-Type: application/json
{
"clientKey": "YOUR_API_KEY",
"task": {
"type": "GridCaptcha",
"subType": "temu",
"image": "BASE64_GRID_IMAGE"
}
}Réponse
En cas de succès, le serveur renvoie errorId = 0 et taskId
{
"errorId": 0,
"taskId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}2. Obtenir le résultat
Requête
POST https://api.achicaptcha.com/getTaskResult
Paramètres
| Nom du paramètre | Type de données | Requis ? | Description |
|---|---|---|---|
clientKey | string | yes | API key |
taskId | string | yes | TaskId obtenu à l'étape (1) |
Exemple de requête
POST /getTaskResult HTTP/1.1
Host: api.achicaptcha.com
Content-Type: application/json
{
"clientKey": "YOUR_API_KEY",
"taskId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}Réponse
{
"errorId": 0,
"status": "ready",
"solution": {
"click": "0,2,5"
}
}solution.click est une chaîne d'indices de cellules de base 0 (ordre ligne par ligne) séparés par des virgules à cliquer dans la grille.
Explication des statuts
errorId = 0etstatus = ready: Résolu avec succès, lire les indices de cellules danssolution.clickerrorId = 0etstatus = processing: En cours de résolution, attendre 2 secondes et interroger à nouveauerrorId > 0: Erreur système, vérifiererrorCodeeterrorDescription
Exemples d'intégration
import requests
import base64
import time
def solve_temu(grid_path, api_key='YOUR_API_KEY'):
with open(grid_path, 'rb') as f:
grid_b64 = base64.b64encode(f.read()).decode()
# Étape 1 : Créer la tâche
create_resp = requests.post(
'https://api.achicaptcha.com/createTask',
json={
'clientKey': api_key,
'task': {
'type': 'GridCaptcha',
'subType': 'temu',
'image': grid_b64
}
}
)
result = create_resp.json()
if result['errorId'] != 0:
raise Exception(result['errorDescription'])
task_id = result['taskId']
# Étape 2 : Interroger le résultat
while True:
time.sleep(2)
poll_resp = requests.post(
'https://api.achicaptcha.com/getTaskResult',
json={'clientKey': api_key, 'taskId': task_id}
)
result = poll_resp.json()
if result['errorId'] != 0:
raise Exception(result['errorDescription'])
if result['status'] == 'ready':
return result['solution']['click'] # e.g. "0,2,5"
# Utilisation
indices = solve_temu('grid.jpg', 'YOUR_API_KEY')
print('Cellules à cliquer :', indices)Codes d'erreur courants
| Code d'erreur | Description | Notes |
|---|---|---|
| 0 | success | Succès |
| 1 | processing | En cours de traitement |
| 2 | missing required fields | Champs requis manquants, vérifier les paramètres |
| 3 | task not supported | Type de tâche non supporté |
| 4 | task creation failed | Échec de création de tâche |
| 5 | client key does not exist | API key inexistante, vérifier la clé |
| 6 | insufficient account balance | Solde insuffisant, ajouter des crédits |
| 7 | task failed, please create a new task | Tâche échouée, créer une nouvelle tâche |
| 8 | task ID does not exist | ID de tâche inexistant |
Meilleures pratiques
Pour de meilleurs résultats lors de l'utilisation de l'API Achicaptcha pour Temu Grid Captcha, suivez ces principes :
1. Encodage de l'image
- Envoyez uniquement l'image de grille comme une seule chaîne Base64
- N'incluez pas le préfixe
data:image/...;base64,— Base64 brut uniquement - Assurez-vous que l'image est entièrement chargée et encodée avant l'envoi
2. Intervalle d'interrogation
- Attendez au moins 2 secondes entre les vérifications de résultat
- Ne surchargez pas l'API avec des requêtes consécutives
- Définissez un délai d'expiration pour éviter les boucles infinies (recommandé : 60 secondes)
3. Traitement des résultats
solution.clickest une chaîne d'indices de cellules de base 0 (ordre ligne par ligne, de gauche à droite, de haut en bas) séparés par des virgules- Divisez par
,et convertissez en entiers avant de cliquer sur les cellules de grille correspondantes
4. Logique de nouvelle tentative
- Implémentez des nouvelles tentatives pour les erreurs temporaires comme
ERROR_NO_SLOT_AVAILABLE - Utilisez un recul exponentiel lors des nouvelles tentatives
- Limitez le nombre maximum de tentatives
5. Sécurité de la clé API
- Ne codez pas en dur votre clé API dans le code source
- Utilisez des variables d'environnement ou un gestionnaire de secrets
- N'exposez jamais la clé API côté client
Liens utiles :