בדף הזה מוסבר איך לאמת תגובה של משתמש לאתגר reCAPTCHA מהאפליקציה שלכם בקצה העורפי.
למשתמשים באינטרנט, אפשר לקבל את אסימון התגובה של המשתמש באחת משלוש דרכים:
- פרמטר POST מסוג
g-recaptcha-response
כשהמשתמש שולח את הטופס באתר grecaptcha.getResponse(opt_widget_id)
אחרי שהמשתמש משלים את הפעולה אתגר ה-reCAPTCHA- כארגומנט של מחרוזת בפונקציית הקריאה החוזרת
אם
data-callback
מצוין במאפיין התגg-recaptcha
או פרמטר הקריאה החוזרת בשיטהgrecaptcha.render
עבור משתמשי ספריית Android, ניתן לקרוא SafetyNetApi.RecaptchaTokenResult.getTokenResult() כדי לקבל אסימון תגובה אם הסטטוס מוחזר בהצלחה.
הגבלות על אסימונים
כל אסימון תגובה של משתמש reCAPTCHA בתוקף למשך שתי דקות, וניתן לאמת אותו פעם אחת בלבד כדי למנוע התקפות שליחה מחדש אם אתם צריכים אסימון חדש, תוכלו להריץ מחדש את האימות מסוג reCAPTCHA.
אחרי שמקבלים את אסימון התגובה, צריך לאמת אותו תוך שתי דקות באמצעות reCAPTCHA באמצעות ממשק ה-API הבא כדי לוודא שהאסימון תקף.
בקשת API
כתובת אתר: https://www.google.com/recaptcha/api/siteverify
METHOD: POST
פרמטר POST | תיאור |
---|---|
secret |
חובה. המפתח המשותף בין האתר שלכם ל-reCAPTCHA. |
response |
חובה. אסימון התגובה של המשתמש שסופק על ידי השילוב של reCAPTCHA בצד הלקוח באתר שלכם. |
remoteip |
זה שינוי אופציונלי. כתובת ה-IP של המשתמש. |
תגובה מה-API
התגובה היא אובייקט 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 |
התגובה כבר לא תקפה: היא ישנה מדי או שכבר נעשה בה שימוש. |