UNLOCK API
Siatka obrazków

Siatka obrazków

Jak wysłać zadanie Siatka obrazków do UNLOCK API przez createTask lub in.php: nazwy typów zadań, wszystkie parametry, obiekt solution, pola proxy i przykłady kodu w 7 językach.
Cena
$0.36 $0.00036 za zadanie
Wysyłasz
Obrazek siatki w base64 i polecenie, np. obiekt do zaznaczenia
Otrzymujesz
Numery komórek do kliknięcia

Przegląd i cena

Nazwy typu zadania

Ten typ ma jedną nazwę.
GridTask

Przyjmowane również: GridTaskProxyless

Obiekt zadania

type
StringWymagane
Nazwa typu zadania. Wielkość liter nie ma znaczenia. GridTask
body
StringWymagane
Obrazek w base64 (JPG, PNG lub GIF), do około 100 KB. Prefiks data: jest dozwolony.
comment
StringOpcjonalne
Instrukcja dla rozwiązującego, na przykład pytanie widoczne nad obrazkiem.
rows
IntegerOpcjonalne
Liczba wierszy siatki.
columns
IntegerOpcjonalne
Liczba kolumn siatki.
imgType
StringOpcjonalne
Rodzaj obrazka, jeśli go znasz.
previousId
StringOpcjonalne
Id wcześniejszego zadania, gdy siatka zmienia się po pierwszej odpowiedzi.
canSkip
BooleanOpcjonalne
true, jeśli odpowiedzią może być to, że żaden kafelek nie pasuje.

Pola niewymienione tutaj są przekazywane do rozwiązującego bez zmian.

Żądanie

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

Obiekt solution

Zwracany w solution, gdy status ma wartość ready.
click
Array
Numery kafelków do kliknięcia, licząc od 1, od lewej do prawej i od góry do dołu.
POST /getTaskResult
{
  "errorId": 0,
  "taskId": 1001,
  "status": "ready",
  "solution": {
    "click": [
      1,
      4,
      9
    ]
  },
  "cost": "0.00036",
  "createTime": 1791640000,
  "endTime": 1791640014,
  "solveCount": 1
}

Przykłady kodu

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")

Metoda formularza in.php

To samo zadanie przez klasyczne żądanie formularza. res.php zwraca odpowiedź jako tekst.
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 formularzy: in.php i res.php