Skip to content
API
Captcha Grid
Tencent

TC Grid Captcha

Ikhtisar

TC Grid Captcha adalah captcha pemilihan grid: halaman menampilkan pertanyaan/petunjuk dan grid ubin. Pemecah harus mengembalikan sel grid mana yang cocok dengan pertanyaan (indeks berbasis 0, urutan baris: kiri ke kanan, atas ke bawah).

🔲

Field task.image mengodekan gambar grid sebagai satu string Base64.

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

1. Buat Tugas

Format Pengiriman Gambar

Gambar grid TC Grid Captcha request payload (grid)

Permintaan

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

Parameter

Nama ParameterTipe DataWajib?Deskripsi
clientKeystringyesAPI key
task.typestringyesGridCaptcha
task.subTypestringyestc
task.imagestringyesGambar grid yang dikodekan Base64
task.otherstringyesTeks pertanyaan/petunjuk yang ditampilkan kepada pengguna (mis. "灰色花瓶")

Contoh Permintaan

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

Respons

Jika berhasil, server mengembalikan errorId = 0 dan taskId

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

2. Dapatkan Hasil

Permintaan

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

Parameter

Nama ParameterTipe DataWajib?Deskripsi
clientKeystringyesAPI key
taskIdstringyesTaskId yang diperoleh dari langkah (1)

Contoh Permintaan

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

Respons

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

solution.click adalah string indeks sel berbasis 0 (urutan baris) yang dipisahkan koma untuk diklik di grid.

Penjelasan Status

  • errorId = 0 dan status = ready: Berhasil dipecahkan, baca indeks sel di solution.click
  • errorId = 0 dan status = processing: Masih memproses, tunggu 2 detik dan periksa lagi
  • errorId > 0: Kesalahan sistem, periksa errorCode dan errorDescription

Contoh Integrasi

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()
 
    # Langkah 1: Buat tugas
    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']
 
    # Langkah 2: Periksa hasil
    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"
 
# Penggunaan
indices = solve_tc('grid.jpg', '灰色花瓶', 'YOUR_API_KEY')
print('Sel yang perlu diklik:', indices)

Kode Kesalahan Umum

Kode KesalahanDeskripsiCatatan
0successBerhasil
1processingSedang Diproses
2missing required fieldsField wajib tidak ada, periksa parameter
3task not supportedTipe tugas tidak didukung
4task creation failedPembuatan tugas gagal
5client key does not existAPI key tidak ada, periksa kunci
6insufficient account balanceSaldo akun tidak mencukupi, tambahkan kredit
7task failed, please create a new taskTugas gagal, buat tugas baru
8task ID does not existID tugas tidak ada

Praktik Terbaik

Untuk hasil terbaik saat menggunakan Achicaptcha API untuk TC Grid Captcha, ikuti prinsip-prinsip berikut:

1. Pengkodean Gambar

  • Kirim hanya gambar grid sebagai satu string Base64
  • Jangan sertakan awalan data:image/...;base64, — hanya Base64 mentah
  • Pastikan gambar sudah sepenuhnya dimuat dan dikodekan sebelum dikirim

2. Parameter task.other

  • Berikan teks pertanyaan yang tepat yang ditampilkan kepada pengguna (mis. "灰色花瓶")
  • Field ini wajib — mengabaikannya akan menyebabkan hasil yang salah
  • Salin string pertanyaan persis dari tantangan captcha

3. Interval Pemeriksaan

  • Tunggu setidaknya 2 detik antara pemeriksaan hasil
  • Jangan membanjiri API dengan permintaan berurutan
  • Tetapkan batas waktu untuk menghindari loop tak terbatas (disarankan: 60 detik)

4. Pemrosesan Hasil

  • solution.click adalah string indeks sel berbasis 0 (urutan baris, kiri ke kanan, atas ke bawah) yang dipisahkan koma
  • Pisahkan dengan , dan konversi ke bilangan bulat sebelum mengklik sel grid yang sesuai

5. Logika Percobaan Ulang

  • Terapkan percobaan ulang untuk kesalahan sementara seperti ERROR_NO_SLOT_AVAILABLE
  • Gunakan backoff eksponensial saat mencoba ulang
  • Batasi jumlah maksimum percobaan ulang

6. Keamanan API Key

  • Jangan hardcode API key Anda dalam kode sumber
  • Gunakan variabel lingkungan atau manajer rahasia
  • Jangan pernah mengekspos API key di sisi klien

Tautan berguna: