UNLOCK API
Współrzędne kliknięcia

Współrzędne kliknięcia

Jak wysłać zadanie Współrzędne kliknięcia 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.60 $0.0006 za zadanie
Wysyłasz
Obrazek w base64 i to, co kliknąć
Otrzymujesz
Punkty x i y do kliknięcia

Przegląd i cena

Nazwy typu zadania

Ten typ ma jedną nazwę.
CoordinatesTask

Przyjmowane również: ImageToCoordinatesTask

Obiekt zadania

type
StringWymagane
Nazwa typu zadania. Wielkość liter nie ma znaczenia. CoordinatesTask
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.
minClicks
IntegerOpcjonalne
Najmniejsza liczba punktów do kliknięcia.
maxClicks
IntegerOpcjonalne
Największa liczba punktów do kliknięcia.

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

Żądanie

POST /createTask
{
  "clientKey": "YOUR_API_KEY",
  "task": {
    "type": "CoordinatesTask",
    "body": "/9j/4AAQSkZJRgABAQ...",
    "comment": "Click the cat"
  }
}

Obiekt solution

Zwracany w solution, gdy status ma wartość ready.
coordinates
Array
Punkty do kliknięcia, w pikselach od lewego górnego rogu obrazka.
POST /getTaskResult
{
  "errorId": 0,
  "taskId": 1001,
  "status": "ready",
  "solution": {
    "coordinates": [
      {
        "x": 114,
        "y": 73
      },
      {
        "x": 201,
        "y": 112
      }
    ]
  },
  "cost": "0.0006",
  "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": "CoordinatesTask",
      "body": "/9j/4AAQSkZJRgABAQ...",
      "comment": "Click the cat"
    }
}).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&coordinatescaptcha=1&textinstructions=Click+the+cat&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