UNLOCK API
Griglia di immagini

Griglia di immagini

Come inviare un task Griglia di immagini a UNLOCK API con createTask o in.php: nomi dei tipi di task, tutti i parametri, l'oggetto solution, i campi proxy ed esempi di codice in 7 linguaggi.
Prezzo
$0.36 $0.00036 per task
Invii
L'immagine della griglia in base64 e l'istruzione, ad esempio l'oggetto da selezionare
Ricevi
I numeri delle celle da cliccare

Panoramica e prezzo

Nomi dei tipi di task

Questo tipo ha un solo nome.
GridTask

Accettati anche: GridTaskProxyless

Oggetto task

type
StringObbligatorio
Nome del tipo di task. Maiuscole e minuscole sono indifferenti. GridTask
body
StringObbligatorio
L'immagine in base64 (JPG, PNG o GIF), fino a circa 100 KB. Il prefisso data: è ammesso.
comment
StringFacoltativo
Istruzione per il risolutore, ad esempio la domanda mostrata sopra l'immagine.
rows
IntegerFacoltativo
Numero di righe della griglia.
columns
IntegerFacoltativo
Numero di colonne della griglia.
imgType
StringFacoltativo
Tipo di immagine, se lo conosci.
previousId
StringFacoltativo
id del task precedente quando la griglia cambia dopo la prima risposta.
canSkip
BooleanFacoltativo
true se la risposta può essere che nessun riquadro corrisponde.

I campi non elencati qui vengono passati al risolutore così come sono stati inviati.

Richiesta

POST /createTask
{
  "clientKey": "YOUR_API_KEY",
  "task": {
    "type": "GridTask",
    "body": "/9j/4AAQSkZJRgABAQ...",
    "comment": "Select all squares with traffic lights",
    "rows": 3,
    "columns": 3
  }
}

Oggetto solution

Restituito in solution quando status è ready.
click
Array
Numeri dei riquadri da cliccare, contati da 1, da sinistra a destra e dall'alto in basso.
POST /getTaskResult
{
  "errorId": 0,
  "taskId": 1001,
  "status": "ready",
  "solution": {
    "click": [
      1,
      4,
      9
    ]
  },
  "cost": "0.00036",
  "createTime": 1791640000,
  "endTime": 1791640014,
  "solveCount": 1
}

Esempi di codice

import time, requests

API = "https://unlock-api.com"
KEY = "YOUR_API_KEY"

task = requests.post(f"{API}/createTask", json={
    "clientKey": KEY,
    "task": {
      "type": "GridTask",
      "body": "/9j/4AAQSkZJRgABAQ...",
      "comment": "Select all squares with traffic lights",
      "rows": 3,
      "columns": 3
    }
}).json()
if task["errorId"]:
    raise SystemExit(task["errorCode"])

for _ in range(60):   # 60 x 5 s = the 5 minute task limit
    time.sleep(5)
    r = requests.post(f"{API}/getTaskResult", json={"clientKey": KEY, "taskId": task["taskId"]}).json()
    if r["errorId"]:
        raise SystemExit(f"{r['errorCode']}: {r.get('errorDescription', '')}")   # failed tasks are refunded
    if r["status"] == "ready":
        print(r["solution"])
        break
else:
    raise SystemExit("timed out")

Metodo form in.php

Lo stesso task con la classica richiesta form. res.php restituisce la risposta come testo.
in.php, res.php
curl -s "https://unlock-api.com/in.php" -d "key=YOUR_API_KEY&method=base64&recaptcha=1&textinstructions=Select+all+traffic+lights&body=BASE64_IMAGE&json=1"
# {"status":1,"request":"1001"}

curl -s "https://unlock-api.com/res.php?key=YOUR_API_KEY&action=get&id=1001&json=1"
# {"status":0,"request":"CAPCHA_NOT_READY"}  then  {"status":1,"request":"ANSWER"}

API a form: in.php e res.php