التحقق من رد المستخدم

تشرح هذه الصفحة كيفية التحقق من رد المستخدم على تحد reCAPTCHA من تطبيقك الخلفية.

بالنسبة إلى مستخدمي الويب، يمكنك الحصول على رمز أمان ردّ المستخدم بإحدى الطرق الثلاث التالية:

  • مَعلمة POST واحدة (g-recaptcha-response) عندما يُرسل المستخدم النموذج على موقعك الإلكتروني.
  • grecaptcha.getResponse(opt_widget_id) بعد أن يُكمل المستخدم تحدّي reCAPTCHA
  • كوسيطة سلسلة لدالة رد الاتصال إذا تم تحديد data-callback في سمة العلامة g-recaptcha أو معلَمة معاودة الاتصال في طريقة grecaptcha.render

بالنسبة إلى مستخدمي مكتبة Android، يمكنك الاتصال SafetyNetApi.RecaptchaTokenResult.getTokenResult() للحصول على الرمز المميز للاستجابة في حالة عرض الحالة بنجاح.

القيود المفروضة على الرموز المميّزة

تستمر صلاحية كل رمز مميّز لردّ المستخدم في reCAPTCHA لمدة دقيقتين، ولا يمكن إثبات صحته إلا مرة واحدة لمنع هجمات إعادة التشغيل. إذا كنت بحاجة إلى رمز مميّز جديد، يمكنك إعادة إجراء اختبار التحقّق reCAPTCHA.

بعد الحصول على الرمز المميّز للاستجابة، عليك إثبات صحته في غضون دقيقتين باستخدام reCAPTCHA باستخدام واجهة برمجة التطبيقات التالية لضمان صلاحية الرمز المميّز.

طلب بيانات من واجهة برمجة التطبيقات

عنوان URL: https://www.google.com/recaptcha/api/siteverify

الطريقة: POST

معلمة POST الوصف
secret مطلوب. المفتاح المشترَك بين موقعك الإلكتروني وreCAPTCHA
response مطلوب. هو الرمز المميّز لاستجابة المستخدم الذي توفّره عملية دمج reCAPTCHA من جهة العميل على موقعك الإلكتروني.
remoteip اختياريّ. عنوان IP للمستخدم.

ردّ من واجهة برمجة التطبيقات

الاستجابة هي عنصر JSON:

{
  "success": true|false,
  "challenge_ts": timestamp,  // timestamp of the challenge load (ISO format yyyy-MM-dd'T'HH:mm:ssZZ)
  "hostname": string,         // the hostname of the site where the reCAPTCHA was solved
  "error-codes": [...]        // optional
}

على أجهزة reCAPTCHA Android:

{
  "success": true|false,
  "challenge_ts": timestamp,  // timestamp of the challenge load (ISO format yyyy-MM-dd'T'HH:mm:ssZZ)
  "apk_package_name": string, // the package name of the app where the reCAPTCHA was solved
  "error-codes": [...]        // optional
}

مرجع رمز الخطأ

رمز الخطأ الوصف
missing-input-secret لا تتوفّر المَعلمة السرية.
invalid-input-secret المَعلمة السرية غير صالحة أو مكتوبة بشكلٍ غير صحيح.
missing-input-response مَعلمة الاستجابة غير متوفّرة.
invalid-input-response معلمة الاستجابة غير صالحة أو مكتوبة بشكل غير صحيح.
bad-request الطلب غير صالح أو غير صحيح.
timeout-or-duplicate لم يعُد الردّ صالحًا: إما أنّه قديم جدًا أو تم استخدامه في السابق.