Skip to content
API
Captcha de Grilla
Tencent

TC Grid Captcha

Descripción general

TC Grid Captcha es una captcha de selección en cuadrícula: la página muestra una pregunta/indicación y una cuadrícula de mosaicos. El solucionador debe devolver qué celdas de la cuadrícula coinciden con la pregunta (índices de base 0, orden de fila: de izquierda a derecha, de arriba a abajo).

🔲

El campo task.image codifica la imagen de cuadrícula como una sola cadena Base64.

Pregunta: 选择图像 是 "灰色花瓶" TC Grid Captcha UI example

1. Crear tarea

Formato de envío de imagen

Imagen de cuadrícula TC Grid Captcha request payload (grid)

Solicitud

POST https://api.achicaptcha.com/createTask

Parámetros

Nombre del parámetroTipo de dato¿Requerido?Descripción
clientKeystringyesAPI key
task.typestringyesGridCaptcha
task.subTypestringyestc
task.imagestringyesImagen de cuadrícula codificada en Base64
task.otherstringyesEl texto de la pregunta/indicación mostrado al usuario (ej. "灰色花瓶")

Ejemplo de solicitud

POST /createTask HTTP/1.1
Host: api.achicaptcha.com
Content-Type: application/json
 
{
  "clientKey": "YOUR_API_KEY",
  "task": {
    "type": "GridCaptcha",
    "subType": "tc",
    "image": "BASE64_GRID_IMAGE",
    "other": "灰色花瓶"
  }
}

Respuesta

Cuando tiene éxito, el servidor devuelve errorId = 0 y taskId

{
  "errorId": 0,
  "taskId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}

2. Obtener resultado

Solicitud

POST https://api.achicaptcha.com/getTaskResult

Parámetros

Nombre del parámetroTipo de dato¿Requerido?Descripción
clientKeystringyesAPI key
taskIdstringyesTaskId obtenido del paso (1)

Ejemplo de solicitud

POST /getTaskResult HTTP/1.1
Host: api.achicaptcha.com
Content-Type: application/json
 
{
  "clientKey": "YOUR_API_KEY",
  "taskId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}

Respuesta

{
  "errorId": 0,
  "status": "ready",
  "solution": {
    "click": "0,2,5"
  }
}

solution.click es una cadena de índices de celdas de base 0 (orden de fila) separados por comas para hacer clic en la cuadrícula.

Explicación de estados

  • errorId = 0 y status = ready: Resuelto exitosamente, leer índices de celdas en solution.click
  • errorId = 0 y status = processing: Aún resolviendo, esperar 2 segundos y consultar de nuevo
  • errorId > 0: Error del sistema, verificar errorCode y errorDescription

Ejemplos de integración

import requests
import base64
import time
 
def solve_tc(grid_path, question, api_key='YOUR_API_KEY'):
    with open(grid_path, 'rb') as f:
        grid_b64 = base64.b64encode(f.read()).decode()
 
    # Paso 1: Crear tarea
    create_resp = requests.post(
        'https://api.achicaptcha.com/createTask',
        json={
            'clientKey': api_key,
            'task': {
                'type': 'GridCaptcha',
                'subType': 'tc',
                'image': grid_b64,
                'other': question
            }
        }
    )
    result = create_resp.json()
 
    if result['errorId'] != 0:
        raise Exception(result['errorDescription'])
 
    task_id = result['taskId']
 
    # Paso 2: Consultar resultado
    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"
 
# Uso
indices = solve_tc('grid.jpg', '灰色花瓶', 'YOUR_API_KEY')
print('Celdas a hacer clic:', indices)

Códigos de error comunes

Código de errorDescripciónNotas
0successÉxito
1processingProcesando
2missing required fieldsFaltan campos requeridos, verificar parámetros
3task not supportedTipo de tarea no soportado
4task creation failedCreación de tarea fallida
5client key does not existAPI key no existe, verificar clave
6insufficient account balanceSaldo insuficiente, añadir créditos
7task failed, please create a new taskTarea fallida, crear una nueva tarea
8task ID does not existID de tarea no existe

Mejores prácticas

Para obtener los mejores resultados al usar la API de Achicaptcha para TC Grid Captcha, siga estos principios:

1. Codificación de imágenes

  • Envíe solo la imagen de cuadrícula como una sola cadena Base64
  • No incluya el prefijo data:image/...;base64, — solo Base64 sin procesar
  • Asegúrese de que la imagen esté completamente cargada y codificada antes de enviar

2. Parámetro task.other

  • Pase el texto exacto de la pregunta mostrado al usuario (ej. "灰色花瓶")
  • Este campo es obligatorio — omitirlo causará resultados incorrectos
  • Copie la cadena de pregunta literalmente del desafío captcha

3. Intervalo de consulta

  • Espere al menos 2 segundos entre verificaciones de resultado
  • No sature la API con solicitudes consecutivas
  • Establezca un tiempo de espera para evitar bucles infinitos (recomendado: 60 segundos)

4. Procesamiento de resultados

  • solution.click es una cadena de índices de celdas de base 0 (orden de fila, de izquierda a derecha, de arriba a abajo) separados por comas
  • Divida por , y convierta a enteros antes de hacer clic en las celdas de cuadrícula correspondientes

5. Lógica de reintento

  • Implemente reintentos para errores temporales como ERROR_NO_SLOT_AVAILABLE
  • Use retroceso exponencial al reintentar
  • Limite el número máximo de intentos de reintento

6. Seguridad de la API key

  • No codifique su API key en el código fuente
  • Use variables de entorno o un gestor de secretos
  • Nunca exponga la API key en el lado del cliente

Enlaces útiles: