Skip to main content
ستتناول هذه المقالة كيفية دمج واجهة برمجة التطبيقات للتعرف على الصور Recaptcha2، والتي يمكن من خلالها التعرف على محتوى المدخلات من المستخدم وصورة كود Recaptcha2، وأخيرًا إرجاع إحداثيات الصورة الصغيرة التي يجب النقر عليها لإكمال التحقق.

عملية التقديم

لاستخدام واجهة برمجة التطبيقات للتعرف على الصور Recaptcha2، يجب أولاً الذهاب إلى لوحة تحكم Ace Data Cloud للحصول على رمز API الخاص بك، احتفظ به للاستخدام لاحقًا. إذا لم تكن قد قمت بتسجيل الدخول أو التسجيل بعد، فسيتم تحويلك تلقائيًا إلى صفحة تسجيل الدخول لدعوتك للتسجيل وتسجيل الدخول، وبعد الانتهاء، سيتم إرجاعك تلقائيًا إلى الصفحة الحالية. يمكن استخدام رمز API واحد لاستدعاء جميع خدمات المنصة، دون الحاجة لتقديم طلب منفصل لكل خدمة. عند التقديم لأول مرة، ستحصل على رصيد مجاني لتجربته؛ وعند نفاد الرصيد، يمكنك إعادة شحن الرصيد العام في لوحة التحكم.
📘 الوثائق الكاملة: واجهة برمجة التطبيقات للتعرف على الصور Recaptcha2 →

الاستخدام الأساسي

أولاً، دعنا نفهم طريقة الاستخدام الأساسية، نحتاج إلى التقاط صورة كود Recaptcha2 من الموقع، هنا مثال على عنوان URL للموقع: https://www.google.com/recaptcha/api2/demo، الصفحة المحددة كما هو موضح في الصورة أدناه:

نحتاج إلى النقر على مربع الاختيار الخاص بكود التحقق حتى تظهر صورة كود Recaptcha، في الصورة أعلاه، تشير السهم الأصفر إلى نص معين، وهذا النص هو قيمة question المذكورة أدناه. أولاً، نحتاج إلى تمرير حقل image، وهو صورة كود Recaptcha2 المحددة، وهذه الصورة هي الصورة المشار إليها بالسهم الأحمر في الصورة أعلاه، ويجب أيضًا تغيير حجم الصورة إلى الحجم القياسي (100x100، 300x300، 450x450)، حتى تتمكن الخدمة من تحديد نوع الصورة، يجب عليك ضغط الصورة بنفسك، توصي هذه المقالة بموقع ضغط الصور حيث يمكنك ضغط الصورة من حيث الأبعاد والحجم، والنتيجة المضغوطة كما هو موضح في الصورة: كما تحتاج إلى إدخال معلمات المحتوى ذات الصلة بصورة كود التحقق question، نقدم فقط الجدول أدناه كمراجع:

جدول المحتويات باللغة الصينية

جدول المحتويات باللغة الإنجليزية

من النص أعلاه، يمكننا تعيين المعلمة question إلى /m/01pns0 الخاصة بمطفأة الحريق، والمحتوى المحدد كما يلي:

يمكننا أن نرى هنا أننا قمنا بتعيين رؤوس الطلب، بما في ذلك:
  • accept: نوع الاستجابة التي ترغب في تلقيها، هنا يتم ملؤها بـ application/json، أي بتنسيق JSON.
  • authorization: مفتاح استدعاء واجهة برمجة التطبيقات، يمكن اختياره مباشرة بعد التقديم.
بالإضافة إلى ذلك، تم تعيين جسم الطلب، بما في ذلك:
  • image: صورة كود التحقق المشفرة بتنسيق Base64.
  • question: معرف السؤال، يرجى الرجوع إلى الجدول، يبدأ بـ /m/.
بعد الاختيار، يمكننا أن نرى أن الجانب الأيمن قد أنشأ أيضًا الكود المقابل، كما هو موضح في الصورة:

انقر على زر “Try” لإجراء الاختبار، كما هو موضح في الصورة أعلاه، هنا حصلنا على النتيجة التالية:
تتضمن النتيجة عدة حقول، كما هو موضح أدناه:
  • solution، نتيجة التحقق من معالجة صورة كود Recaptcha2.
    • size، حجم صورة كود Recaptcha2.
    • label، المحتوى الذي تم التعرف عليه في صورة كود Recaptcha2.
    • confidences، مستوى الثقة في منطقة التعرف على صورة كود Recaptcha2، حيث تبدأ المناطق من 0.
    • objects، المناطق التي تلبي محتوى التعرف على صورة كود Recaptcha2، تبدأ المناطق من 0.
    • type، نوع مهمة صورة كود Recaptcha2، إذا كانت هناك مناطق متعددة، تكون multi.
يمكننا أن نرى أننا حصلنا على نتيجة التحقق من معالجة صورة كود Recaptcha2، أولاً نقوم بتقسيم صورة كود التحقق إلى مناطق، كما هو موضح في الصورة أدناه:

يمكننا أن نرى أن المناطق تبدأ من 0، ومن النتيجة في objects حصلنا على 2، 5، 7، نحتاج فقط إلى محاكاة النقر على هذه المناطق الثلاثة في كود التحقق للمرور بالتحقق. بالإضافة إلى ذلك، إذا كنت ترغب في إنشاء الكود المقابل للتكامل، يمكنك ببساطة نسخه، على سبيل المثال، كود CURL كما يلي:
كود التكامل بلغة Python كما يلي:

الوضع غير المتزامن (async)

بشكل افتراضي، تكون واجهة برمجة التطبيقات متزامنة وتنتظر: ستنتظر الطلب حتى يتم معالجة نتيجة التعرف. إذا كنت تقوم بتدوير عدة حلّات (multi-solver rotation) وترغب في “تقديم المهمة والحصول على task_id على الفور، ثم جدولة حلّات أخرى، والعودة لاحقًا للحصول على النتيجة”، يمكنك تمرير async: true في جسم الطلب. بعد تمرير async: true، ستعيد الواجهة على الفور task_id، دون الانتظار:
بعد ذلك، استخدم task_id للاستعلام عن POST /captcha/tasks (يوصى كل 3~5 ثوانٍ مرة واحدة) للحصول على النتيجة:
أثناء المعالجة، ستعيد status: processing:
عند الانتهاء من المعالجة، ستعيد status: ready ونتيجة التعرف solution (هيكل الحقول متطابق تمامًا مع الوضع المتزامن):
شرح الفوترة: في الوضع غير المتزامن، لا يتم احتساب رسوم لإنشاء المهام أو الاستعلام عن “قيد المعالجة”; يتم احتساب الرسوم مرة واحدة فقط عند الحصول على نتيجة التعرف بنجاح (بأسعار متطابقة مع الوضع المتزامن). لذلك، فإن إلغاء المهام التي لم تكتمل بعد أثناء التدوير لن ينتج عنه أي رسوم. /captcha/tasks متاحة لجميع واجهات التحقق من CAPTCHA (سلسلة token وrecognition) ويمكن استخدام نفس task_id للاستعلام.

معالجة الأخطاء

عند استدعاء واجهة برمجة التطبيقات، إذا واجهت خطأ، ستعيد الواجهة رمز الخطأ والمعلومات ذات الصلة. على سبيل المثال:
  • 400 token_mismatched: طلب غير صحيح، ربما بسبب معلمات مفقودة أو غير صالحة.
  • 400 api_not_implemented: طلب غير صحيح، ربما بسبب معلمات مفقودة أو غير صالحة.
  • 401 invalid_token: غير مصرح، رمز تفويض غير صالح أو مفقود.
  • 429 too_many_requests: عدد كبير جدًا من الطلبات، لقد تجاوزت الحد الأقصى لمعدل الطلبات.
  • 500 api_error: خطأ داخلي في الخادم، حدث خطأ ما على الخادم.

مثال على استجابة الخطأ

الخاتمة

من خلال هذه الوثيقة، لقد فهمت كيفية استخدام واجهة برمجة التطبيقات للتعرف على صورة Recaptcha2 لجعل المستخدم يدخل المحتوى المعترف به وصورة CAPTCHA Recaptcha2، وأخيرًا إعادة إحداثيات الصورة الصغيرة التي تحتاج إلى النقر عليها لإكمال التحقق. نأمل أن تساعدك هذه الوثيقة في التوصيل والاستخدام الأفضل لهذه الواجهة. إذا كان لديك أي استفسارات، فلا تتردد في الاتصال بفريق الدعم الفني لدينا.