UNLOCK API
createTask

createTask

تنشئ مهمة وترجع معرّفها. يُخصم سعر نوع المهمة من الرصيد عند قبول المهمة، ويُعاد إذا فشلت المهمة.
POSThttps://unlock-api.com/createTask
أرسل POST مع Content-Type: application/json. حقول المهمة تعتمد على نوعها؛ راجع أنواع المهام.

معاملات الطلب

clientKey
Stringمطلوب
مفتاح API الخاص بك، 32 حرفًا، من صفحة الحساب.
task
Objectمطلوب
كائن المهمة. الحقل type فيه يحدد الحقول الأخرى المطلوبة. أنواع المهام
callbackUrl
Stringاختياري
عنوان http(s) عام. عند انتهاء المهمة أو فشلها، تُرسل النتيجة إليه عبر POST بصيغة JSON.
softId
Integerاختياري
معرّف تطبيقك، يُحفظ مع المهمة. يُقبل appId كالحقل نفسه.

الطلب

POST /createTask
{
  "clientKey": "YOUR_API_KEY",
  "task": {
    "type": "TurnstileTaskProxyless",
    "websiteURL": "https://example.com/login",
    "websiteKey": "0x4AAAAAAAC3DHQFLr1GavRN"
  }
}

الاستجابة

{
  "errorId": 0,
  "taskId": 1001
}

حقول الاستجابة

errorId
Integer
0 عند نجاح الطلب، و1 عند فشله.
taskId
Integer
معرّف المهمة.
errorCode
String
اسم الخطأ عندما تكون قيمة errorId هي 1.
errorDescription
String
شرح قصير للخطأ بالإنجليزية.

أمثلة الكود

import time, requests

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

task = requests.post(f"{API}/createTask", json={
    "clientKey": KEY,
    "task": {
      "type": "TurnstileTaskProxyless",
      "websiteURL": "https://example.com/login",
      "websiteKey": "0x4AAAAAAAC3DHQFLr1GavRN"
    }
}).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"]["token"])
        break
else:
    raise SystemExit("timed out")

الأخطاء التي قد ترجعها هذه الطريقة

  • المفتاح غير صحيح. انسخه مرة أخرى من صفحة الحساب. (في in.php وres.php: ERROR_WRONG_USER_KEY)

  • جاء الطلب من عنوان IP غير موجود في قائمة الحساب المسموحة. أضف العنوان من صفحة الحساب.

  • هذا الحساب محظور. تواصل مع الدعم من صفحة الحساب.

  • طلبات كثيرة. خفّف التحقق من النتيجة إلى مرة كل 5 ثوانٍ.

  • الرصيد لا يكفي للمهمة. اشحن رصيدك، ولم يُخصم أي شيء.

  • الطلبات كثيرة الآن، فلم تُقبل المهمة. حاول مرة أخرى بعد بضع ثوانٍ، ولم يُخصم أي شيء.

  • نوع المهمة غير معروف أو معطل. تحقق من اسم النوع.

  • حقل مطلوب مفقود أو بصيغة خاطئة.

  • قيمة websiteURL أو pageurl مفقودة أو ليست عنوان http(s) كاملًا.

  • مهمة البروكسي تحتاج إلى proxyAddress وproxyPort.

  • الصورة مفقودة أو صغيرة جدًا.

  • حجم الصورة أكبر من 100 KB.

  • الصورة ليست بصيغة base64 صالحة.