Skip to content
API
Grid Captcha
Tencent

TC Grid Captcha

Pangkalahatang-ideya

Ang TC Grid Captcha ay isang grid selection na captcha: ipinapakita ng pahina ang isang tanong/prompt at isang grid ng mga tile. Dapat ibalik ng solver kung aling mga grid cell ang tumutugma sa tanong (0-based na mga indeks, row-major: kaliwa-pakanan, itaas-pababa).

🔲

Ang field na task.image ay nag-e-encode ng grid na imahe bilang isang solong Base64 na string.

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

1. Lumikha ng Gawain

Format ng Pagsusumite ng Larawan

Grid na imahe TC Grid Captcha request payload (grid)

Kahilingan

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

Mga Parameter

Pangalan ng ParameterUri ng DataKinakailangan?Paglalarawan
clientKeystringooAPI key
task.typestringooGridCaptcha
task.subTypestringootc
task.imagestringooBase64-encoded na grid na imahe
task.otherstringooTeksto ng tanong/prompt na ipinapakita sa user (hal. "灰色花瓶")

Halimbawa ng Kahilingan

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": "灰色花瓶"
  }
}

Tugon

Kapag matagumpay, ang server ay nagbabalik ng errorId = 0 at taskId

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

2. Kunin ang Resulta

Kahilingan

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

Mga Parameter

Pangalan ng ParameterUri ng DataKinakailangan?Paglalarawan
clientKeystringooAPI key
taskIdstringooTaskId na nakuha mula sa hakbang (1)

Halimbawa ng Kahilingan

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

Tugon

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

Ang solution.click ay isang comma-separated na string ng 0-based na indeks ng cell (row-major) na dapat i-click sa grid.

Paliwanag ng Status

  • errorId = 0 at status = ready: Matagumpay na nalutas, basahin ang mga indeks ng cell sa solution.click
  • errorId = 0 at status = processing: Niresolba pa rin, maghintay ng 2 segundo at mag-poll muli
  • errorId > 0: Error sa sistema, suriin ang errorCode at errorDescription

Mga Halimbawa ng Integrasyon

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()
 
    # Hakbang 1: Lumikha ng gawain
    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']
 
    # Hakbang 2: Suriin ang resulta
    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']  # hal. "0,2,5"
 
# Paggamit
indices = solve_tc('grid.jpg', '灰色花瓶', 'YOUR_API_KEY')
print('Mga cell na i-click:', indices)

Mga Karaniwang Error Code

Error CodePaglalarawanMga Tala
0successTagumpay
1processingPinoproseso
2missing required fieldsNawawalang kinakailangang field, suriin muli ang mga parameter
3task not supportedHindi sinusuportahan ang uri ng gawain
4task creation failedNabigo ang paglikha ng gawain
5client key does not existHindi umiiral ang API key, suriin muli ang API key
6insufficient account balanceHindi sapat ang balanse ng account, magdagdag ng mga credit
7task failed, please create a new taskNabigo ang gawain, lumikha ng bagong gawain
8task ID does not existHindi umiiral ang task ID

Mga Pinakamahusay na Gawi

Para sa pinakamahusay na resulta kapag gumagamit ng Achicaptcha API para sa TC Grid Captcha, sundin ang mga prinsipyong ito:

1. Pag-encode ng Larawan

  • Ipadala lamang ang grid na imahe bilang isang solong Base64 na string
  • Huwag isama ang prefix na data:image/...;base64, — raw Base64 lamang
  • Tiyaking ganap na na-load at na-encode ang imahe bago ipadala

2. Parameter na task.other

  • Ipasa ang eksaktong teksto ng tanong na ipinapakita sa user (hal. "灰色花瓶")
  • Kinakailangan ang field na ito — ang pag-aalis nito ay magdudulot ng maling resulta
  • Kopyahin nang verbatim ang string ng tanong mula sa captcha challenge

3. Agwat ng Polling

  • Maghintay ng hindi bababa sa 2 segundo sa pagitan ng mga pagsusuri ng resulta
  • Huwag mag-spam ng API na may magkakasunod na mga kahilingan
  • Magtakda ng timeout upang maiwasan ang mga walang katapusang loop (inirerekomenda: 60 segundo)

4. Pagproseso ng Resulta

  • Ang solution.click ay isang comma-separated na string ng 0-based na indeks ng cell (row-major, kaliwa-pakanan, itaas-pababa)
  • I-split sa pamamagitan ng , at i-convert sa mga integer bago i-click ang mga kaukulang grid cell

5. Retry Logic

  • Mag-implement ng retry para sa mga pansamantalang error tulad ng ERROR_NO_SLOT_AVAILABLE
  • Gumamit ng exponential backoff kapag nagre-retry
  • Limitahan ang maximum na bilang ng mga retry

6. Seguridad ng API Key

  • Huwag i-hardcode ang iyong API key sa source code
  • Gumamit ng mga environment variable o secrets manager
  • Huwag kailanman i-expose ang API key sa client side

Mga kapaki-pakinabang na link: