UNLOCK API
شبكة صور

شبكة صور

كيف ترسل مهمة شبكة صور إلى UNLOCK API عبر createTask أو in.php: أسماء نوع المهمة، وكل معامل، وكائن solution، وحقول البروكسي، وأمثلة كود بـ 7 لغات.
السعر
$0.36 $0.00036 لكل مهمة
ترسل
صورة الشبكة بصيغة base64 والتعليمات، مثل الشيء المطلوب اختياره
تستلم
أرقام الخانات التي يجب النقر عليها

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

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

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

يُقبل أيضًا: GridTaskProxyless

كائن المهمة

type
Stringمطلوب
اسم نوع المهمة. يُطابق بأي حالة أحرف. GridTask
body
Stringمطلوب
الصورة بصيغة base64 (JPG أو PNG أو GIF)، حتى نحو 100 KB. يُسمح بالبادئة data:.
comment
Stringاختياري
تعليمات للحلّال، مثلًا السؤال الظاهر فوق الصورة.
rows
Integerاختياري
عدد الصفوف في الشبكة.
columns
Integerاختياري
عدد الأعمدة في الشبكة.
imgType
Stringاختياري
نوع الصورة، إن كنت تعرفه.
previousId
Stringاختياري
معرّف المهمة السابقة عندما تتغير الشبكة بعد الإجابة الأولى.
canSkip
Booleanاختياري
true إذا كان من الممكن ألا يطابق أي مربع.

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

الطلب

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

كائن solution

يُرجع في solution عندما تكون status هي ready.
click
Array
أرقام المربعات المطلوب النقر عليها، بدءًا من 1، من اليسار إلى اليمين ومن الأعلى إلى الأسفل.
POST /getTaskResult
{
  "errorId": 0,
  "taskId": 1001,
  "status": "ready",
  "solution": {
    "click": [
      1,
      4,
      9
    ]
  },
  "cost": "0.00036",
  "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": "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")

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

المهمة نفسها عبر طلب النموذج الكلاسيكي. يرجع res.php الإجابة كنص.
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 النماذج: in.php وres.php