UNLOCK API
Glisser-déposer

Glisser-déposer

Comment envoyer une tâche Glisser-déposer à UNLOCK API avec createTask ou in.php : noms du type de tâche, tous les paramètres, l'objet solution, les champs proxy et des exemples de code dans 7 langages.
Prix
$0.60 $0.0006 par tâche
Vous envoyez
Les images et l'emplacement des pièces
Vous recevez
Déplacements à effectuer (points de départ et d'arrivée)

Présentation et prix

Noms du type de tâche

Ce type n'a qu'un seul nom.
DragAndDropTask

Objet tâche

type
StringObligatoire
Nom du type de tâche. Reconnu quelle que soit la casse. DragAndDropTask
body
StringObligatoire
L'image en base64 (JPG, PNG ou GIF), jusqu'à environ 100 KB. Un préfixe data: est accepté.
comment
StringFacultatif
Consigne pour le résolveur, par exemple la question affichée au-dessus de l'image.

Les champs qui ne figurent pas ici sont transmis au résolveur tels qu'envoyés.

Requête

POST /createTask
{
  "clientKey": "YOUR_API_KEY",
  "task": {
    "type": "DragAndDropTask",
    "body": "/9j/4AAQSkZJRgABAQ...",
    "comment": "Move each piece to its matching place"
  }
}

Objet solution

Renvoyé dans solution quand status vaut ready.
answer
Array
La réponse à soumettre.
POST /getTaskResult
{
  "errorId": 0,
  "taskId": 1001,
  "status": "ready",
  "solution": {
    "answer": [
      {
        "from": {
          "x": 20,
          "y": 40
        },
        "to": {
          "x": 210,
          "y": 44
        }
      }
    ]
  },
  "cost": "0.0006",
  "createTime": 1791640000,
  "endTime": 1791640014,
  "solveCount": 1
}

Exemples de code

import time, requests

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

task = requests.post(f"{API}/createTask", json={
    "clientKey": KEY,
    "task": {
      "type": "DragAndDropTask",
      "body": "/9j/4AAQSkZJRgABAQ...",
      "comment": "Move each piece to its matching place"
    }
}).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")

Méthode formulaire in.php

Ce type n'est disponible qu'avec les méthodes JSON.