Temu Grid Captcha
Pangkalahatang-ideya
Ang Temu Grid Captcha ay isang grid selection na captcha: ipinapakita ng pahina ang isang grid ng mga tile at dapat ibalik ng solver kung aling mga cell ang dapat i-click (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. Hindi na kailangan ng karagdagang field na other.

1. Lumikha ng Gawain
Format ng Pagsusumite ng Larawan
Grid na imahe

Kahilingan
POST https://api.achicaptcha.com/createTask
Mga Parameter
| Pangalan ng Parameter | Uri ng Data | Kinakailangan? | Paglalarawan |
|---|---|---|---|
clientKey | string | oo | API key |
task.type | string | oo | GridCaptcha |
task.subType | string | oo | temu |
task.image | string | oo | Base64-encoded na grid na imahe |
Halimbawa ng Kahilingan
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"
}
}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 Parameter | Uri ng Data | Kinakailangan? | Paglalarawan |
|---|---|---|---|
clientKey | string | oo | API key |
taskId | string | oo | TaskId 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 = 0atstatus = ready: Matagumpay na nalutas, basahin ang mga indeks ng cell sasolution.clickerrorId = 0atstatus = processing: Niresolba pa rin, maghintay ng 2 segundo at mag-poll mulierrorId > 0: Error sa sistema, suriin angerrorCodeaterrorDescription
Mga Halimbawa ng Integrasyon
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()
# Hakbang 1: Lumikha ng gawain
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']
# 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_temu('grid.jpg', 'YOUR_API_KEY')
print('Mga cell na i-click:', indices)Mga Karaniwang Error Code
| Error Code | Paglalarawan | Mga Tala |
|---|---|---|
| 0 | success | Tagumpay |
| 1 | processing | Pinoproseso |
| 2 | missing required fields | Nawawalang kinakailangang field, suriin muli ang mga parameter |
| 3 | task not supported | Hindi sinusuportahan ang uri ng gawain |
| 4 | task creation failed | Nabigo ang paglikha ng gawain |
| 5 | client key does not exist | Hindi umiiral ang API key, suriin muli ang API key |
| 6 | insufficient account balance | Hindi sapat ang balanse ng account, magdagdag ng mga credit |
| 7 | task failed, please create a new task | Nabigo ang gawain, lumikha ng bagong gawain |
| 8 | task ID does not exist | Hindi umiiral ang task ID |
Mga Pinakamahusay na Gawi
Para sa pinakamahusay na resulta kapag gumagamit ng Achicaptcha API para sa Temu 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. 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)
3. Pagproseso ng Resulta
- Ang
solution.clickay 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
4. 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
5. 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: