Skip to content
API
Grid Captcha
Botion

Botion Grid Captcha

ภาพรวม

Botion เป็นแคปต์ชา การเลือกกริด: หน้าเพจจะแสดงภาพ ตัวอย่างอ้างอิง และ กริด 3×3 ของกระเบื้อง ตัวแก้ต้องคืนค่าว่าเซลล์กริดใดที่ตรงกับการอ้างอิง (ดัชนีฐาน 0, ลำดับแถว: ซ้ายไปขวา, บนลงล่าง)

🔲

ฟิลด์ task.image เข้ารหัสข้อมูล Base64 สอง ชุดที่เชื่อมด้วย | — ภาพ ตัวอย่าง ก่อน จากนั้นเป็นภาพ กริด

Botion captcha UI example

1. สร้างงาน

รูปแบบการส่งรูปภาพ

ภาพตัวอย่าง Botion request payload (sample | grid)

ภาพกริด Botion request payload (sample | grid)

คำขอ

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

พารามิเตอร์

ชื่อพารามิเตอร์ประเภทข้อมูลจำเป็น?คำอธิบาย
clientKeystringyesAPI key
task.typestringyesGridCaptcha
task.subTypestringyesbotion
task.imagestringyesBASE64_SAMPLE_IMAGE|BASE64_GRID_IMAGE — ภาพตัวอย่างก่อน จากนั้น | จากนั้นภาพกริด 3×3 (ทั้งคู่เป็น Base64 ไม่มีคำนำหน้า data:)
task.otherstringnotopk|grid_size ค่าเริ่มต้นคือ 3|3 หากไม่ระบุ

ตัวอย่างคำขอ

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

การตอบกลับ

เมื่อสำเร็จ เซิร์ฟเวอร์จะส่งคืน errorId = 0 และ taskId

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

2. รับผลลัพธ์

คำขอ

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

พารามิเตอร์

ชื่อพารามิเตอร์ประเภทข้อมูลจำเป็น?คำอธิบาย
clientKeystringyesAPI key
taskIdstringyesTaskId ที่ได้จากขั้นตอน (1)

ตัวอย่างคำขอ

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

การตอบกลับ

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

solution.click คือสตริงดัชนีเซลล์ฐาน 0 (ลำดับแถว) ที่คั่นด้วยเครื่องหมายจุลภาคสำหรับคลิกในกริด 3×3

คำอธิบายสถานะ

  • errorId = 0 และ status = ready: แก้ไขสำเร็จ อ่านดัชนีเซลล์ใน solution.click
  • errorId = 0 และ status = processing: ยังประมวลผลอยู่ รอ 2 วินาทีแล้วตรวจสอบอีกครั้ง
  • errorId > 0: ข้อผิดพลาดของระบบ ตรวจสอบ errorCode และ errorDescription

ตัวอย่างการผสานรวม

import requests
import base64
import time
 
def solve_botion(sample_path, grid_path, api_key='YOUR_API_KEY', other='3|3'):
    with open(sample_path, 'rb') as f:
        sample_b64 = base64.b64encode(f.read()).decode()
    with open(grid_path, 'rb') as f:
        grid_b64 = base64.b64encode(f.read()).decode()
 
    # ขั้นตอนที่ 1: สร้างงาน
    create_resp = requests.post(
        'https://api.achicaptcha.com/createTask',
        json={
            'clientKey': api_key,
            'task': {
                'type': 'GridCaptcha',
                'subType': 'botion',
                'image': f'{sample_b64}|{grid_b64}',
                'other': other
            }
        }
    )
    result = create_resp.json()
 
    if result['errorId'] != 0:
        raise Exception(result['errorDescription'])
 
    task_id = result['taskId']
 
    # ขั้นตอนที่ 2: ตรวจสอบผลลัพธ์
    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"
 
# การใช้งาน
indices = solve_botion('sample.png', 'grid.png', 'YOUR_API_KEY')
print('เซลล์ที่ต้องคลิก:', indices)

รหัสข้อผิดพลาดทั่วไป

รหัสข้อผิดพลาดคำอธิบายหมายเหตุ
0successสำเร็จ
1processingกำลังประมวลผล
2missing required fieldsขาดฟิลด์ที่จำเป็น ตรวจสอบพารามิเตอร์
3task not supportedประเภทงานไม่รองรับ
4task creation failedการสร้างงานล้มเหลว
5client key does not existไม่มี API key ตรวจสอบคีย์
6insufficient account balanceยอดเงินในบัญชีไม่เพียงพอ เพิ่มเครดิต
7task failed, please create a new taskงานล้มเหลว สร้างงานใหม่
8task ID does not existไม่มี ID งาน

แนวปฏิบัติที่ดีที่สุด

เพื่อผลลัพธ์ที่ดีที่สุดเมื่อใช้ Achicaptcha API สำหรับ Botion Grid Captcha ให้ปฏิบัติตามหลักการเหล่านี้:

1. ลำดับภาพ

  • ส่งภาพ ตัวอย่าง (อ้างอิง) ก่อนเสมอ จากนั้น | จากนั้นภาพ กริด
  • อย่ารวมคำนำหน้า data:image/...;base64, — ใช้เฉพาะ Base64 ดิบ
  • ตรวจสอบว่าทั้งสองภาพโหลดและเข้ารหัสเสร็จสมบูรณ์ก่อนส่ง

2. พารามิเตอร์ task.other

  • รูปแบบคือ topk|grid_size (เช่น 3|3)
  • หากไม่ระบุ ค่าเริ่มต้นคือ 3|3 แต่ให้ตั้งค่าอย่างชัดเจนเสมอเพื่อหลีกเลี่ยงพฤติกรรมที่ไม่คาดคิด
  • grid_size ที่ไม่ถูกต้องจะทำให้การแมปดัชนีฐาน 0 ใน solution.click ผิดพลาด

3. ช่วงเวลาการสำรวจ

  • รอเวลาอย่างน้อย 2 วินาทีระหว่างการตรวจสอบผลลัพธ์
  • อย่าส่งคำขอซ้ำๆ ไปยัง API
  • ตั้งค่าเวลาหมดอายุเพื่อหลีกเลี่ยงลูปไม่สิ้นสุด (แนะนำ: 60 วินาที)

4. การประมวลผลผลลัพธ์

  • solution.click คือสตริงดัชนีเซลล์ฐาน 0 (ลำดับแถว, ซ้ายไปขวา, บนลงล่าง) ที่คั่นด้วยเครื่องหมายจุลภาค
  • แยกด้วย , และแปลงเป็นจำนวนเต็มก่อนคลิกเซลล์กริดที่สอดคล้องกัน

5. ตรรกะการลองใหม่

  • ใช้การลองใหม่สำหรับข้อผิดพลาดชั่วคราวเช่น ERROR_NO_SLOT_AVAILABLE
  • ใช้ exponential backoff เมื่อลองใหม่
  • จำกัดจำนวนการลองใหม่สูงสุด

6. ความปลอดภัยของคีย์ API

  • อย่าฮาร์ดโค้ดคีย์ API ในซอร์สโค้ด
  • ใช้ตัวแปรสภาพแวดล้อมหรือตัวจัดการความลับ
  • อย่าเปิดเผยคีย์ API ทางฝั่งไคลเอนต์

ลิงก์ที่เป็นประโยชน์: