UNLOCK API
إحداثيات النقر

إحداثيات النقر

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

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

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

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

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

كائن المهمة

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

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

الطلب

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

كائن solution

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

أمثلة الكود

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

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

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