Skip to content
API
Grid Captcha
Amazon

Amazon Grid Captcha

Pangkalahatang-ideya

Ang Amazon Grid Captcha ay isang captcha ng pagpili sa grid: nagpapakita ang pahina ng isang tanong/tagubilin at isang grid ng mga tile. Ang solver ay dapat ibalik kung aling mga cell ng grid ang tumutugma sa tanong (mga index na base 0, row-major: kaliwa hanggang kanan, itaas hanggang ibaba).

🔲

Ang field na task.image ay maaaring mag-encode ng larawan ng grid bilang isang solong Base64 string o bilang 9 na hiwalay na larawan ng 1x1 (Base64, pinaghiwalay ng |)

Amazon Grid Captcha UI example

1. Lumikha ng Gawain

Format ng Pagsusumite ng Larawan

Larawan ng grid 3x3 Amazon Grid Captcha request payload (grid) O 9 na hiwalay na larawan ng 1x1

Kahilingan

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

Mga Parameter

Pangalan ng ParameterUri ng DataKinakailangan?Paglalarawan
clientKeystringyesAPI key
task.typestringyesGridCaptcha
task.subTypestringyesamzn
task.imagestringyesLarawan ng grid na naka-encode sa Base64
task.otherstringyesAng teksto ng tanong/tagubilin na ipinapakita sa gumagamit (hal. "the curtains")

Halimbawa ng Kahilingan

POST /createTask HTTP/1.1
Host: api.achicaptcha.com
Content-Type: application/json
 
{
  "clientKey": "YOUR_API_KEY",
  "task": {
    "type": "GridCaptcha",
    "subType": "amzn",
    "image": "BASE64_GRID_IMAGE",
    "other": "the curtains"
  }
}

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
clientKeystringyesAPI key
taskIdstringyesTaskId 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 mga index ng cell na base 0 (row-major) para i-click sa grid.

Paliwanag ng Status

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

Mga Halimbawa ng Integrasyon

import requests
import base64
import time
 
def solve_amzn(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': 'amzn',
                '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']  # e.g. "0,2,5"
 
# Paggamit
indices = solve_amzn('grid.png', 'the curtains', 'YOUR_API_KEY')
print('Mga cell na i-click:', indices)

Mga Karaniwang Error Code

Error CodePaglalarawanMga Tala
0successTagumpay
1processingPinoproseso
2missing required fieldsNawawalang mga kinakailangang field, suriin 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 ang susi
6insufficient account balanceHindi sapat na balanse ng account, magdagdag ng mga kredito
7task failed, please create a new taskNabigo ang gawain, lumikha ng bagong gawain
8task ID does not existHindi umiiral ang ID ng gawain

Mga Pinakamahusay na Gawi

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

1. Pag-encode ng Larawan

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

2. Parameter na task.other

  • Ipasa ang eksaktong teksto ng tanong na ipinapakita sa gumagamit (hal. "the curtains")
  • Ang field na ito ay kinakailangan — ang pagtanggal nito ay magdudulot ng maling resulta
  • Kopyahin ang string ng tanong nang verbatim mula sa hamon ng captcha

3. Agwat ng Pagtatanong

  • Maghintay ng hindi bababa sa 2 segundo sa pagitan ng mga pagsusuri ng resulta
  • Huwag i-spam ang API ng mga sunud-sunod na kahilingan
  • Magtakda ng timeout upang maiwasan ang walang hanggang mga loop (inirerekomenda: 60 segundo)

4. Pagpoproseso ng Resulta

  • Ang solution.click ay isang comma-separated na string ng mga index ng cell na base 0 (row-major, kaliwa hanggang kanan, itaas hanggang ibaba)
  • Hatiin sa , at i-convert sa mga integer bago i-click ang mga kaukulang cell ng grid

5. Lohika ng Muling Pagsubok

  • Ipatupad ang muling pagsubok 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 pagtatangka ng muling pagsubok

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 ilantad ang API key sa panig ng kliyente

Mga kapaki-pakinabang na link: