Skip to content
API
Text Captcha

Text Captcha

Pangkalahatang-ideya

Ang karaniwang text captcha ay isang imahe na naglalaman ng distorted na text na nababasa ng mga tao. Upang malutas ang captcha image, kailangang ilagay ng mga user ang text mula sa imahe.

📝

Ang text captcha ay maaaring magsama ng mga numero, letra, o kumbinasyon ng pareho. Karaniwang gumagamit sila ng mga distortion ng imahe, ingay, at iba't ibang font upang gawing mahirap ang awtomatikong pagbabasa.

Common text captcha

1. Lumikha ng Gawain

Request

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

Mga Parameter

ParameterUri ng DataKailangan?Paglalarawan
clientKeystringooAPI key
task.typestringooImageToTextTask
task.imagestringooBase64 ng imahe
task.subTypestringooIsa sa mga sumusunod na uri: common, amazon, microsoft, facebook, garena, artistshot, gmx, 11166, houssam

Halimbawa ng Request

POST /createTask HTTP/1.1
Host: api.achicaptcha.com
Content-Type: application/json
 
{
  "clientKey": "Your API_KEY",
  "task": {
    "type": "ImageToTextTask",
    "image": "base64 encoded image",
    "subType": "gmx"
  }
}

Response

Sa tagumpay, ibabalik ng server ang errorId = 0 at taskId

{
  "errorId": 0,
  "taskId": "f2fc70d6-c76b-4fba-9480-205ac1fe9fb9"
}

2. Kunin ang Resulta

Request

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

Mga Parameter

ParameterUri ng DataKailangan?Paglalarawan
clientKeystringooAPI key
taskIdstringooTaskId mula sa hakbang (1)

Halimbawa ng Request

POST /getTaskResult HTTP/1.1
Host: api.achicaptcha.com
Content-Type: application/json
 
{
  "clientKey": "Your API_KEY",
  "taskId": "f2fc70d6-c76b-4fba-9480-205ac1fe9fb9"
}

Response

{
  "errorId": 0,
  "status": "ready",
  "solution": "swamn"
}

Paliwanag sa Status

  • errorId = 0 at status = ready: Matagumpay na nalutas, basahin ang resulta sa solution.text
  • errorId = 0 at status = processing: Ang captcha ay nilulutas, maghintay ng 2 segundo at subukang muli
  • errorId > 0: Error sa system, ibinigay ang error code at paglalarawan

Mga Opsyon sa SubType

Sinusuportahan ng Achicaptcha ang iba't ibang uri ng text captcha sa pamamagitan ng parameter na subType:

SubTypePaglalarawan
commonKaraniwang text captcha, pinakasikat
amazonCaptcha na partikular sa Amazon na may espesyal na distortion
microsoftCaptcha na ginagamit sa mga serbisyo ng Microsoft
facebookCaptcha ng Facebook na may natatanging mga font
garenaCaptcha sa platform ng Garena
artistshotCaptcha mula sa website ng Artistshot
gmxCaptcha ng email ng GMX
11166Espesyal na uri ng captcha na may code na 11166
houssamPartikular na uri ng captcha na pinangalanang Houssam
discordCaptcha na partikular sa Discord
okvipCaptcha na partikular sa OKVIP
shopeeCaptcha na partikular sa Shopee
📝

Karaniwan ang subType: common ay kayang hawakan ang lahat ng uri ng text captcha. Kung ang text captcha ng iyong website ay masyadong partikular, mangyaring makipag-ugnayan sa admin (opens in a new tab) para sa suporta.

Mga Halimbawa ng Integrasyon

import requests
import time
import base64
 
def solve_captcha(image_path, sub_type='common', api_key='YOUR_API_KEY'):
    # Basahin at i-encode ang imahe
    with open(image_path, 'rb') as image_file:
        image_base64 = base64.b64encode(image_file.read()).decode('utf-8')
    
    # Hakbang 1: Lumikha ng gawain
    create_task_url = 'https://api.achicaptcha.com/createTask'
    create_task_payload = {
        'clientKey': api_key,
        'task': {
            'type': 'ImageToTextTask',
            'image': image_base64,
            'subType': sub_type
        }
    }
    
    response = requests.post(create_task_url, json=create_task_payload)
    result = response.json()
    
    if result['errorId'] != 0:
        raise Exception(result['errorDescription'])
    
    task_id = result['taskId']
    
    # Hakbang 2: Kunin ang resulta
    get_result_url = 'https://api.achicaptcha.com/getTaskResult'
    
    while True:
        time.sleep(2)  # Maghintay ng 2 segundo
        
        get_result_payload = {
            'clientKey': api_key,
            'taskId': task_id
        }
        
        response = requests.post(get_result_url, json=get_result_payload)
        result = response.json()
        
        if result['errorId'] != 0:
            raise Exception(result['errorDescription'])
        
        if result['status'] == 'ready':
            return result['solution']
        
        # Kung status == 'processing', ipagpatuloy ang loop
 
# Paggamit
solution = solve_captcha('captcha.png', 'common', 'YOUR_API_KEY')
print('Captcha result:', solution)

Karaniwang Error Codes

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

Pinakamahuhusay na Kasanayan

Upang makamit ang pinakamahusay na mga resulta kapag gumagamit ng Achicaptcha API, sundin ang mga prinsipyong ito:

1. Kalidad ng Imahe

  • Gumamit ng mga imahe na may magandang resolusyon
  • Tiyaking hindi masyadong malabo o maingay ang mga imahe
  • Piliin ang naaangkop na subType para sa iyong uri ng captcha

2. Interval ng Polling

  • Maghintay ng hindi bababa sa 2 segundo sa pagitan ng mga pagsusuri ng resulta
  • Huwag i-spam ang API ng masyadong maraming magkakasunod na kahilingan
  • Magkaroon ng timeout upang maiwasan ang mga infinite loop

3. Logic ng Pag-retry

  • Ipatupad ang retry para sa mga pansamantalang error tulad ng ERROR_NO_SLOT_AVAILABLE
  • Gumamit ng exponential backoff kapag nagre-retry
  • Limitahan ang maximum na mga pagsubok sa pag-retry

4. Seguridad ng API Key

  • Huwag i-hardcode ang API key sa code
  • Gumamit ng mga environment variable
  • Huwag ilantad ang API key sa client-side

Mga Kapaki-pakinabang na Link: