פתרון בעיות

ריכזנו כאן כמה טיפים לפתרון בעיות נפוצות.

למה רדיוס הדיוק גדול מאוד?

אם התגובה של Geolocation מציגה ערך גבוה מאוד בשדה הדיוק, יכול להיות שהשירות מבצע מיקום גיאוגרפי על סמך כתובת ה-IP של הבקשה, במקום נקודות Wi-Fi או מגדלי תקשורת. תגובות כאלה יכולות להתרחש אם השירות לא מזהה מגדלי תקשורת או נקודות גישה.

כדי לוודא שהשירות לא הצליח לאתר את נקודות הגישה, מגדירים את considerIp כ-false בבקשה. אם התגובה היא 404, סימן שלא ניתן היה לאתר את המיקום הגיאוגרפי של האובייקטים wifiAccessPoints ו-cellTowers.

איך פותרים בעיות שקשורות לשגיאות בתשובות?

אם הבקשה שלכם תיצור שגיאה, המערכת תחזיר גוף תגובה לשגיאה בפורמט סטנדרטי ותגדיר את קוד הסטטוס של HTTP לסטטוס שגיאה.

תגובת השגיאה מכילה אובייקט עם אובייקט שגיאה אחד, שכולל את המפתחות הבאים:

  • code: זהה לסטטוס ה-HTTP של התגובה.
  • ‫message: תיאור קצר של השגיאה.
  • ‫errors: רשימה של השגיאות שקרו. כל שגיאה מכילה מזהה של סוג השגיאה (הסיבה) ותיאור קצר (ההודעה).

לדוגמה, אם שולחים JSON לא תקין, מוחזרת השגיאה הבאה:

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "parseError",
    "message": "Parse Error",
   }
  ],
  "code": 400,
  "message": "Parse Error"
 }
}

איסוף מידע על בדיקות ממכשירים

כדי לבצע בדיקות נוספות, אתם יכולים לאסוף מידע מהמכשיר באמצעות שירותי המיקום המובנים שכל פלטפורמה מציעה:

תיאורי השגיאות

ריכזנו כאן את השגיאות האפשריות שאתם עשויים להיתקל בהן, עם תיאורים.

סיבה דומיין קוד סטטוס של HTTP תיאור
dailyLimitExceeded usageLimits 403 חרגתם מהמגבלה היומית.
keyInvalid usageLimits 400 מפתח ה-API שלכם לא תקף ל-Geolocation API. חשוב לכלול את המפתח המלא, ולוודא שרכשתם את ה-API או שהפעלתם את החיוב ואת ה-API כדי לקבל את המכסה בחינם.
userRateLimitExceeded usageLimits 403 חרגתם ממגבלת הבקשות שהגדרתם במסוף Google Cloud. המגבלה הזו מוגדרת בדרך כלל כמספר הבקשות ליום, מספר הבקשות ל-100 שניות ומספר הבקשות ל-100 שניות לכל משתמש. כדאי להגדיר את המגבלה כך שמשתמש יחיד או קבוצה קטנה של משתמשים לא ינצלו את כל המכסה היומית, ועדיין תהיה גישה סבירה לכל המשתמשים. כדי להגדיר את המגבלות האלה, קראו את המאמר הגבלת השימוש ב-API.
notFound geolocation 404 הבקשה הייתה תקינה, אבל לא הוחזרו תוצאות.
parseError global 400 גוף הבקשה הוא לא JSON תקין. בקטע גוף הבקשה מפורטים הפרטים של כל שדה.