UNLOCK API
السحب والإفلات

السحب والإفلات

كيف ترسل مهمة السحب والإفلات إلى UNLOCK API عبر createTask أو in.php: أسماء نوع المهمة، وكل معامل، وكائن solution، وحقول البروكسي، وأمثلة كود بـ 7 لغات.
السعر
$0.60 $0.0006 لكل مهمة
ترسل
الصور والمواضع التي يجب أن تذهب إليها القطع
تستلم
الحركات المطلوب تنفيذها (نقاط البداية والنهاية)

نظرة عامة والسعر

أسماء نوع المهمة

لهذا النوع اسم واحد.
DragAndDropTask

كائن المهمة

type
Stringمطلوب
اسم نوع المهمة. يُطابق بأي حالة أحرف. DragAndDropTask
body
Stringمطلوب
الصورة بصيغة base64 (JPG أو PNG أو GIF)، حتى نحو 100 KB. يُسمح بالبادئة data:.
comment
Stringاختياري
تعليمات للحلّال، مثلًا السؤال الظاهر فوق الصورة.

الحقول غير المذكورة هنا تُمرر إلى الحلّال كما أُرسلت.

الطلب

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

كائن solution

يُرجع في solution عندما تكون status هي ready.
answer
Array
الإجابة المطلوب إرسالها.
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
}

أمثلة الكود

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

طريقة نموذج in.php

هذا النوع متاح عبر طرق JSON فقط.