استخدام API مهام CAPTCHA في Make
أنشئ المهمة مرة واحدة باستخدام وحدة HTTP في Make، واحفظ معرّفها، وتحقق منها بطلب GET منفصل. وجّه مهام ready وfailed والمهام غير المكتملة إلى مسارات منفصلة. هذا تكامل HTTP يدوي، وليس تطبيق solvethree أصليًا أو webhook.
في هذه الصفحة
ضبط طلب الإنشاء
أولًا، أعدّ ملف تعريف نشطًا لاسم المضيف المستهدف في مساحة عملك. إرسال site وaction لا ينشئ ملف تعريف. راجع إعداد ملف تعريف الموقع إذا لم يكن الهدف مُعدًّا بعد.
- 1.
اضبط مصادقة HTTP v4
اختر نوع المصادقة
API keyوأنشئ سلسلة مفاتيح لبيانات الاعتماد. اضبط المفتاح علىBearerمتبوعًا بمسافة ومفتاح API لمساحة عملك، والموضع علىIn the header، واسم المعامل علىAuthorization. اقصر أصول الخدمة المسموح بها علىhttps://api.solvethree.com. احتفظ بالمفتاح في سلسلة المفاتيح بدلًا من تمريره عبر بيانات السيناريو. - 2.
أدخل إعدادات الطلب
استخدم الطريقة وعنوان URL ومعامل الاستعلام والترويسة وجسم JSON الموضحة أدناه. أدخل كلًا منها في حقل الوحدة المقابل له. وحدها محتويات
bodyتوضع في محتوى طلب JSON؛ المثال الكامل إعدادات توضيحية، وليس مخطط Make قابلًا للاستيراد.
{
"method": "POST",
"url": "https://api.solvethree.com/v1/tasks",
"query": {
"waitMs": "0"
},
"headers": {
"Content-Type": "application/json"
},
"body": {
"site": "accounts.example.com",
"action": "login",
"proxy": "http://USER:PASSWORD@PROXY:PORT",
"requestId": "one-stable-id-for-this-logical-job"
},
"authentication": {
"type": "API key",
"Key": "Bearer YOUR_PRIVATE_WORKSPACE_KEY",
"API key placement": "In the header",
"API key parameter name": "Authorization",
"Allowed service origins": [
"https://api.solvethree.com"
]
}
}- استبدل
siteباسم المضيف المُعدّ، وليس بعنوان URL كامل. اضبطactionعلى الإجراء المستخدم في التدفق المستهدف. - استبدل
proxyبعنوان URL لوكيلك. يتطلب الطلب واحدًا فقط منproxyأوproxyCandidates؛ يستخدم المثال وكيلًا واحدًا. - امنح كل عملية منطقية جديدة
requestIdخاصًا بها، واحتفظ به للاستعادة. قيمة المثال عنصر نائب، وليست معرّفًا لإعادة استخدامه في عمليات غير مرتبطة. - لا تضف
typeأوurlإلى طلب reCAPTCHA هذا. عند حذفrecaptchaType، تكون قيمته الافتراضيةenterprise-v3.
احفظ معرّف المهمة واضبط GET
بعد استجابة إنشاء ناجحة، احفظ معرّف المهمة المُعاد واربطه بالعملية المنطقية قبل تنفيذ المزيد من العمل. أضف وحدة طلب HTTP منفصلة لاسترجاع تلك المهمة.
| الإعداد | القيمة |
|---|---|
| الطريقة | GET |
| عنوان URL | https://api.solvethree.com/v1/tasks/:id، مع استبدال :id بمعرّف المهمة المحفوظ |
| المصادقة | مفتاح API؛ أعد استخدام سلسلة مفاتيح بيانات الاعتماد لطلب الإنشاء |
| جسم الطلب | بلا |
عالج استجابات HTTP غير الناجحة قبل التوجيه بحسب حالة المهمة. خطأ HTTP ليس مماثلًا لمهمة حالتها failed؛ لا تتعامل مع استجابة غير قابلة للقراءة أو غير ناجحة بوصفها نتيجة pending أخرى.
وجّه بحسب حالة المهمة المُعادة
بعد نجاح GET، أضف موجّهًا بمرشحات صريحة على status المُعاد. لا ترسل كل استجابة HTTP ناجحة إلى مسار الحل.
| المرشح | الإجراء |
|---|---|
status يساوي ready | مرّر الحل إلى العميل الذي سيرسله وأغلق مسار استطلاع هذه المهمة. |
status يساوي failed | سجّل errorCode وerror، ثم توقف عن استطلاع هذه المهمة. تُردّ تكلفة محاولات الحل الفاشلة. |
status يساوي pending أو status يساوي solving | احتفظ بمعرّف المهمة المحفوظ وأنهِ دورة الاستطلاع هذه. استأنف باستخدام GET في دورة لاحقة. |
اجعل مرشح المهام غير المكتملة صريحًا بدلًا من جعله شاملًا لكل الحالات. يجب فحص الحالة المفقودة أو غير المتوقعة، لا مواصلة استطلاعها بصمت إلى الأبد. في مسار الفشل، تحرَّ عن الخطأ المُبلّغ عنه قبل إنشاء مهمة أخرى؛ لن تتحسن المدخلات غير الصالحة التي لم تتغير بإعادة المحاولة.
استأنف باستخدام المعرّف المحفوظ بدلًا من تكرار POST
ينفّذ التصميم البسيط المحدود طلب GET واحدًا في كل دورة استطلاع. احفظ العمل غير المكتمل في مكان يمكن للدورة التالية قراءته؛ لا تعتمد على معرّف مهمة لا يوجد إلا في التنفيذ الحالي.
- 1.
اختر مسار الدخول
إذا كان للعملية معرّف مهمة بالفعل، فانتقل مباشرة إلى GET. وحدها العملية الجديدة التي ليس لها مهمة موجودة يجب أن تدخل مسار الإنشاء.
- 2.
أنهِ دورات التشغيل غير المكتملة
في حالتي
pendingأوsolving، احتفظ بمعرّف المهمة وأنهِ دورة التشغيل. عند الاستئناف، استرجع المعرّف نفسه. علّم المهام التي وصلت إلى حالة نهائية بأنها مغلقة كي لا تعالج دورات الاستطلاع اللاحقة نتائجها مجددًا. - 3.
ضع حدًا لأي مكرّر
إذا أضفت مكرّرًا بدلًا من ذلك، فحدّد له عددًا أقصى محدودًا وكرّر GET فقط للمعرّف المحفوظ. امنع أي استطلاع إضافي أو معالجة للنتائج بعد
readyأوfailed. بلوغ حد التكرار يعني التوقف والاحتفاظ بالمعرّف، لا إنشاء مهمة بديلة.
سلّم النتيجة الجاهزة إلى عميل يدعم الوكيل
في طلب reCAPTCHA هذا، القيمة المطلوب إرسالها هي solution.token، وليست معرّف المهمة. استخدم هوية المتصفح المُعادة في userAgent وsecChUa مع الوكيل الذي نجح في الحل عند الإرسال إلى الهدف المقصود.
لا تفترض أن وحدة HTTP في Make يمكنها استخدام وكيل العميل المستخدم لدى خدمة الحل لذلك الطلب النهائي. سلّم النتيجة الجاهزة إلى عميل يدعم الوكيل وهوية المتصفح المطلوبين. تعني ready أن الحل قد وُلّد؛ ويتحدد القبول من خلال استجابة الهدف للإرسال اللاحق.
المصادر ومرجع API
شغّل مهمتك الأولى.
ابدأ برصيد قدره $5 في مساحة العمل.