בקשת טוקן reCAPTCHA Enterprise באמצעות cURL

מאת solvethree3 דקות קריאה

צרו משימה עם שם המארח של האתר, הפעולה והפרוקסי שלכם. אם מוחזר pending או solving, בצעו תשאול באמצעות מזהה המשימה שהוחזר. קראו את הטוקן מתוך solution.token רק כשהמצב הוא ready.

בדף הזה

הכנת האתר, המפתח והפרוקסי

  • ודאו ש-cURL ו-jq זמינים במעטפת הפקודות שלכם.
  • הגדירו את SOLVETHREE_API_KEY למפתח ה-API של סביבת העבודה שלכם. הריצו את הפקודות האלה בצד השרת; אל תכללו את המפתח בקוד דפדפן.
  • הגדירו את SOLVETHREE_PROXY לכתובת הפרוקסי שבכוונתכם להשתמש בו לפתרון ולשליחת הטוקן.
  • הגדירו בקונסולה פרופיל אתר reCAPTCHA פעיל עבור סביבת העבודה שלכם. החליפו בדוגמה את accounts.example.com ואת login בשם המארח ובפעולה שלכם.

שליחת שם מארח ופעולה אינה יוצרת פרופיל אתר. הפרופיל חייב להיות פעיל כבר לפני בקשת הפתרון.

יצירת המשימה עם המתנה מפורשת

cURL + jq · יצירת משימה אחת
# Set SOLVETHREE_API_KEY and SOLVETHREE_PROXY in your environment first.
# Replace the hostname and action with your active site profile.
jq -n \
  --arg proxy "$SOLVETHREE_PROXY" \
  --arg requestId "login-$(date +%s)-$$" \
  '{site:"accounts.example.com", action:"login", proxy:$proxy, requestId:$requestId}' \
| curl --fail-with-body --max-time 30 \
  'https://api.solvethree.com/v1/tasks?waitMs=15000' \
  -H "Authorization: Bearer $SOLVETHREE_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-binary @-

גוף ה-JSON מספק site,‏ action ו-proxy יחיד. נדרש בדיוק אחד מבין proxy או proxyCandidates. אל תוסיפו type או url; השמטת recaptchaType בוחרת ב-enterprise-v3.

פרמטר השאילתה waitMs=15000 מבקש מבקשת היצירה להמתין עד 15 שניות. מקומו בכתובת ה-URL, לא בגוף ה-JSON. הזמן הקצוב של cURL הוא 30 שניות, כך שנשאר מרווח לתקורת רשת מעבר להמתנה בצד השרת. ייתכן שהמשימה עדיין לא תהיה במצב סופי כשהתגובה תגיע.

קריאת התגובה ותשאול משימות שטרם הסתיימו

בדקו אם אירעה שגיאת HTTP לפני פירוש הגוף כתגובת משימה. שתי הפקודות משתמשות ב---fail-with-body; טפלו בבקשת HTTP שנכשלה בנפרד ממשימה שהמצב שלה הוא failed.

זהו המבנה של תגובה מוכנה. הערכים שלהלן הם ערכי דוגמה, לא טוקן שניתן לשלוח.

דוגמה לתגובה מוכנה · פרטי גישה לדוגמה
{
  "id": "example-task",
  "status": "ready",
  "solution": {
    "token": "EXAMPLE_TOKEN",
    "userAgent": "EXAMPLE_USER_AGENT",
    "secChUa": "EXAMPLE_CLIENT_HINTS"
  }
}
מה לעשות עם מצב המשימה שהוחזר
מה לעשות עם מצב המשימה שהוחזר
מצבהפעולה הבאה
pending או solvingשמרו את ה-id שהוחזר ואחזרו את אותה משימה. עדיין אין פתרון שניתן להשתמש בו; אל תיצרו משימה חלופית.
מוכןהפסיקו את התשאול וקראו את solution.token,‏ solution.userAgent ו-solution.secChUa.
failedהפסיקו את התשאול ובדקו את errorCode ואת error. על פתרונות שנכשלו ניתן החזר כספי. תקנו את הגורם לפני התחלת משימה נוספת.

אם התגובה אינה במצב סופי, הגדירו בסביבה שלכם את TASK_ID לערך id שהוחזר, ואז אחזרו את המשימה:

API המשימות · אחזור משימה קיימת
curl --fail-with-body --max-time 30 \
  "https://api.solvethree.com/v1/tasks/$TASK_ID?waitMs=15000" \
  -H "Authorization: Bearer $SOLVETHREE_API_KEY"

בקשת GET זו ממתינה עד 15 שניות לתוצאה, עם זמן קצוב של 30 שניות ל-HTTP. ללא waitMs, בקשת GET חוזרת ללא המתנה. חזרו על ה-GET רק כל עוד המצב הוא pending או solving, והגדירו בקוד הקורא מגבלת זמן כוללת כדי שלולאת התשאול לא תוכל לרוץ ללא הגבלה.

אם המשימה נכשלת, השתמשו בפרטי השגיאה שלה במקום להניח שמדובר בבעיית יתרה. למשל, site-unreachable מחייב לבדוק אם ניתן להגיע ליעד, ולא לשלוח שוב באופן עיוור קלט שלא השתנה.

שליחת הטוקן

השתמשו ב־solution.token בבקשה ליישום היעד. ה־id של המשימה משמש רק לאחזור המשימה; הוא אינו אסימון ה־CAPTCHA. המיקום של האסימון תלוי בטופס או ב־API של היעד, ולכן אין פקודה אוניברסלית לשליחה ליעד.

השתמשו ב־solution.userAgent וב־solution.secChUa שהוחזרו, יחד עם הפרוקסי שבו הפתרון הצליח, בעת שליחת האסימון. בדוגמה עם פרוקסי יחיד שלעיל, השתמשו באותו SOLVETHREE_PROXY. אל תשלבו זהות דפדפן או כתובת URL של יעד שאינן קשורות.

ready מציין ש־solvethree יצר פתרון. בדקו בנפרד את תגובת יישום היעד כדי לקבוע אם הוא קיבל את הבקשה שלכם.

שאלות נוספות

האם זה זהה ל־API של siteverify של Google?

לא. siteverify של Google בודק אסימון שכבר קיים ודורש את סוד האימות של בעל האתר. ה־API של solvethree יוצר פתרון באמצעות מפתח ה־API של סביבת העבודה שלכם. אל תכניסו סוד אימות של Google לבקשת המשימה.

הפעלת המשימה הראשונה שלך.

התחילו עם $5 בקרדיט לסביבת העבודה.

יצירת סביבת עבודה
בקשת טוקן reCAPTCHA Enterprise באמצעות cURL · solvethree