פתרון בעיות

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

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

אם בתשובה של המיקום הגיאוגרפי מוצג ערך גבוה מאוד בשדה הדיוק, יכול להיות שהשירות מזהה את המיקום הגיאוגרפי על סמך כתובת ה-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"
 }
}

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

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

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

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

סיבה דומיין קוד סטטוס 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 תקין. פרטים על כל שדה מופיעים בקטע Request Body.