איך מוסיפים מקום מותר לדיווח נוכחות (נקודה על המפה עם רדיוס) מתוך מערכת חיצונית, בלי להיכנס למסך במערכת: כתובת הקריאה, הזדהות, כל הפרמטרים, דוגמאות קוד מלאות, התשובות האפשריות ופתרון תקלות.
1. מה ה-API הזה עושה, ולמי הוא מיועד
מקום מותר לדיווח הוא נקודה על המפה (קו רוחב וקו אורך) עם רדיוס סביבה, שממנה העובדים יכולים להחתים כניסה ויציאה באפליקציית הנוכחות. בדרך כלל מגדירים מקומות כאלה ידנית במסך ניהול דיווחים ← מקומות מותרים לדיווח ← "הוסף חדש".
ה-API להוספת מקום מותר עושה בדיוק את אותה פעולה, אבל דרך קריאת רשת (HTTP) ממערכת אחרת. זה שימושי במיוחד כש:
יש לכם הרבה סניפים, אתרי עבודה או לקוחות, ואתם רוצים לטעון את כולם בבת אחת מקובץ או ממערכת אחרת.
אתרי העבודה מתחלפים כל הזמן (למשל חברות בנייה, ניקיון, אבטחה, שיפוצים או התקנות), ואתם רוצים שכל אתר חדש שנפתח במערכת ה-ERP או ה-CRM שלכם ייפתח אוטומטית גם במערכת הנוכחות.
יש לכם מתכנת או חברת אינטגרציה שמחברים בין המערכות.
ה-API מיועד לאנשים טכניים (מתכנתים, אנשי IT או אינטגרטורים). מנהל שרוצה להוסיף כמה מקומות בודדים יכול לעשות זאת ישירות במסך, בלי API. ההסבר המלא נמצא במדריך "הגדרת מקומות מותרים לדיווח נוכחות".
מה ה-API לא עושה: הוא רק יוצר מקום חדש. הוא לא עורך מקום קיים, לא מוחק מקום, לא מחזיר את רשימת המקומות, ולא משייך את המקום לעובדים. עריכה, מחיקה ושיוך לעובדים נעשים במסכים של המערכת (ראו פרק 8).
2. תקציר מהיר
נושא | ערך |
כתובת (URL) |
|
שיטת קריאה (Method) |
|
פורמט הגוף (Body) | טופס רגיל: |
הזדהות | שם משתמש וסיסמה של משתמש מנהל במערכת, בפרמטרים |
פרמטרים של המקום |
|
זיהוי החברה | אוטומטי, לפי המשתמש שהזדהה. אין צורך לשלוח מספר לקוח. |
פורמט התשובה | JSON: |
שימו לב, אם עבדתם לפי גרסה קודמת של המדריך: בגרסה הקודמת הופיעה דוגמה ששולחת את הנתונים כ-JSON (Content-Type: application/json) עם פרמטר client (מזהה לקוח). זה לא נכון:
• הנתונים חייבים להישלח כטופס (form), ולא כ-JSON. נתונים שנשלחים כ-JSON לא נקראים בכלל.
• אין פרמטר client. החברה נקבעת לפי המשתמש שמזדהה, ולכן חובה לשלוח שם משתמש וסיסמה (u ו-p).
אם האינטגרציה שלכם לא עובדת, או שנוצרים מקומות ריקים בלי שם, זו כנראה הסיבה. עדכנו את הקריאה לפי המדריך הזה.
3. הזדהות (שם משתמש וסיסמה)
כל קריאה חייבת לכלול את פרטי ההתחברות של משתמש במערכת הנוכחות. המערכת מזהה לפיהם לאיזו חברה שייך המשתמש, ומוסיפה את המקום לחברה הזאת.
פרמטר | תיאור | דוגמה |
| שם המשתמש שאיתו מתחברים למערכת (אותו שם משתמש שמקלידים במסך הכניסה). |
|
| הסיסמה של המשתמש, כפי שהיא (טקסט רגיל). המערכת בודקת אותה מול הסיסמה השמורה. |
|
3.1 איזה משתמש מתאים
המשתמש חייב להיות מנהל, כלומר משתמש עם הרשאה גבוהה מ"עובד" (למשל מנהל מערכת או מנהל מחלקה). משתמש של עובד רגיל יקבל תשובה
no authenticated.המשתמש חייב להיות פעיל: העובד שמחזיק את המשתמש פעיל ולא נמחק, המשתמש לא מוקפא, תוקף ההתחברות שלו (אם הוגדר) לא פג, ותוקף החשבון של החברה לא פג.
המקום נוסף תמיד לחברה של המשתמש. אין דרך להוסיף מקום לחברה אחרת דרך הקריאה הזאת.
💡 המלצה: צרו במערכת משתמש מנהל ייעודי לאינטגרציה (למשל "api_user"), במקום להשתמש במשתמש האישי של מנהל. כך שינוי סיסמה של מנהל, או עזיבה של עובד, לא ישברו את האינטגרציה. אם משנים את הסיסמה של משתמש ה-API, צריך לעדכן אותה גם בקוד שקורא ל-API.
אבטחה: הסיסמה נשלחת בכל קריאה. תמיד קראו לכתובת עם https:// (ולא http://), אל תשמרו את הסיסמה בקוד שרץ בדפדפן של משתמשים או באפליקציה ציבורית, ושמרו אותה רק בשרת שלכם.
אפשר לשלוח את u ו-p בגוף הטופס יחד עם שאר הפרמטרים (מומלץ), או בשורת הכתובת (Query String), למשל ...add_location?u=api_user&p=MyPass123. שתי הדרכים עובדות. העדיפו את גוף הטופס, כי כתובות נשמרות לפעמים בלוגים.
4. הפרמטרים של המקום
את הפרמטרים האלה שולחים בגוף הבקשה (Body), כשדות טופס, בבקשת POST.
פרמטר | חובה? | סוג | תיאור | דוגמה |
| כן | טקסט | שם המקום, כפי שיופיע לכם ברשימת המקומות, בכרטיס העובד ובחלון השיוך לעובדים. |
|
| כן | מספר עשרוני, בקילומטרים | הרדיוס סביב הנקודה. העובד יוכל לדווח רק מתוך העיגול הזה. |
|
| כן | מספר עשרוני | קו רוחב (Latitude) של מרכז המקום, במעלות עשרוניות. |
|
| כן | מספר עשרוני | קו אורך (Longitude) של מרכז המקום, במעלות עשרוניות. |
|
חשוב: ה-API לא בודק את הערכים שאתם שולחים. אם שוכחים פרמטר, שולחים שם ריק או שולחים קואורדינטות שגויות, ייתכן שהמקום ייווצר בכל זאת, והתשובה תהיה {"status": true}. מקום כזה לא יעבוד כמו שצריך: עובדים לא יצליחו לדווח ממנו, או שיופיע ברשימה בלי שם. לכן הקפידו לשלוח את כל ארבעת הפרמטרים, עם ערכים תקינים, ובדקו את המקום במסך אחרי ההוספה הראשונה (פרק 7).
4.1 השם (name)
כתבו שם ברור שהמנהלים יזהו, למשל "משרד ראשי - תל אביב", "מחסן ראשון לציון" או "אתר בנייה נתניה - רחוב הרצל 5".
אפשר לכתוב בעברית, באנגלית או בכל שפה. שלחו את הטקסט בקידוד UTF-8 (ברוב הכלים זו ברירת המחדל).
גרש לא נשמר. המערכת מוחקת אוטומטית את התווים
'(גרש),’(גרש מעוקל) ו-`. למשלקריית ביאליק - צ'ק פוסטיישמר כ-קריית ביאליק - צק פוסט. אפשר להשתמש במקום זה בגרשיים (") או לכתוב בלי גרש.רווחים מיותרים בתחילת השם ובסופו נמחקים, וכמה רווחים ברצף הופכים לרווח אחד.
המערכת לא בודקת אם כבר קיים מקום עם אותו שם. כל קריאה יוצרת מקום חדש. אם קוראים פעמיים עם אותם נתונים, יהיו שני מקומות זהים (ראו פרק 6.3).
4.2 הרדיוס (radius)
הרדיוס נשלח תמיד בקילומטרים, כמספר עשרוני עם נקודה (לא פסיק). טבלת המרה:
רדיוס רצוי | הערך לשלוח ב- |
100 מטר |
|
200 מטר |
|
300 מטר |
|
400 מטר |
|
500 מטר |
|
1 קילומטר |
|
5 קילומטר |
|
10 קילומטר |
|
50 קילומטר |
|
100 קילומטר |
|
אלה אותם ערכים שמופיעים ברשימת הרדיוס במסך. אפשר לשלוח גם ערך אחר, למשל
0.25(250 מטר) או0.75(750 מטר). כשפותחים מקום כזה לעריכה במסך, הרדיוס יוצג כ"מותאם".טעות נפוצה: לשלוח את הרדיוס במטרים, למשל
300במקום0.3. במקרה כזה הרדיוס יהיה 300 קילומטר, והעובדים יוכלו לדווח כמעט מכל הארץ.אל תשלחו יחידות או טקסט (למשל
300mאו0,3). שלחו רק מספר עם נקודה עשרונית.
💡 איזה רדיוס לבחור?
• משרד, חנות או סניף בתוך בניין: 0.2 עד 0.3 (200 עד 300 מטר). זו ההמלצה לרוב העסקים.
• מפעל, מחסן גדול, קניון, בית חולים, קמפוס או אזור תעשייה: 0.3 עד 0.5.
• אתר בנייה או שטח פתוח גדול: 0.5 עד 1.
• 0.1 (100 מטר): רק כשהעובדים מדווחים בשטח פתוח, ליד הנקודה. בתוך בניין, ה-GPS של הטלפון יכול לסטות בעשרות ואף במאות מטרים, ו-100 מטר כמעט תמיד קטן מדי.
4.3 קווי הרוחב והאורך (lat, lng)
הקואורדינטות נשלחות במעלות עשרוניות (Decimal Degrees, WGS84), כמו שמופיע ב-Google Maps. למשל
32.0853ו-34.7818(תל אביב).מומלץ לשלוח לפחות 5 ספרות אחרי הנקודה (דיוק של כמטר אחד). 4 ספרות הן דיוק של כ-10 מטר.
השתמשו בנקודה עשרונית, לא בפסיק. אל תשלחו פורמט של מעלות, דקות ושניות (כמו
32°05'07"N).אל תחליפו ביניהם.
latהוא קו הרוחב (המספר הראשון ב-Google Maps), ו-lngהוא קו האורך (המספר השני). בישראל קו הרוחב הוא בערך בין 29.5 ל-33.3, וקו האורך בערך בין 34.2 ל-35.9. אם החלפתם ביניהם, המקום ייווצר במקום אחר בעולם, ואף עובד לא יצליח לדווח ממנו.אל תשלחו
0או ערכים ריקים.
4.4 איך מוצאים את הקואורדינטות של כתובת
פותחים את Google Maps במחשב ומחפשים את הכתובת.
לוחצים בכפתור הימני של העכבר על הנקודה המדויקת (למשל הכניסה לבניין).
בשורה הראשונה של התפריט שנפתח מופיעים שני מספרים, למשל
32.794044, 34.989571. לוחצים עליהם כדי להעתיק.המספר הראשון הוא
lat, והשני הואlng.
אם המערכת שלכם שומרת כתובות ולא קואורדינטות, אפשר להמיר כתובת לקואורדינטות בעזרת שירות Geocoding (למשל Google Geocoding API) לפני הקריאה ל-API שלנו. המערכת שלנו לא ממירה כתובות.
5. דוגמאות קריאה
בכל הדוגמאות החליפו את api_user ו-MyPass123 בשם המשתמש והסיסמה שלכם, ואת פרטי המקום בפרטים האמיתיים.
5.1 הבקשה הגולמית (HTTP)
POST /index.php/api/add_location HTTP/1.1 Host: 412.co.il Content-Type: application/x-www-form-urlencoded; charset=UTF-8 u=api_user&p=MyPass123&name=Haifa%20Branch&radius=0.3&lat=32.794044&lng=34.989571
בפורמט הזה, ערכים עם רווחים, עברית או תווים מיוחדים צריכים להיות מקודדים (URL encoding). כל ספריית HTTP עושה זאת אוטומטית כששולחים את הנתונים כטופס, כמו בדוגמאות הבאות.
5.2 cURL (שורת פקודה)
curl -X POST "https://412.co.il/index.php/api/add_location" \ --data-urlencode "u=api_user" \ --data-urlencode "p=MyPass123" \ --data-urlencode "name=סניף חיפה" \ --data-urlencode "radius=0.3" \ --data-urlencode "lat=32.794044" \ --data-urlencode "lng=34.989571"
ב-Windows (שורת הפקודה cmd) כותבים את כל הפקודה בשורה אחת, בלי התווים \ בסוף השורות.
5.3 Postman
יוצרים בקשה חדשה (New ← HTTP Request).
בוחרים בשיטה POST, ומדביקים את הכתובת
https://412.co.il/index.php/api/add_location.עוברים ללשונית Body ובוחרים x-www-form-urlencoded. לא לבחור raw או JSON.
מוסיפים שש שורות (Key / Value):
u,p,name,radius,lat,lng, עם הערכים שלכם.לוחצים Send. בחלק התחתון אמורה להופיע התשובה
{"status":true}.
אין צורך להוסיף כותרות (Headers) ידנית. Postman מוסיף את Content-Type המתאים לבד.
5.4 PHP
<?php $ch = curl_init('https://412.co.il/index.php/api/add_location'); curl_setopt_array($ch, [ CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_POSTFIELDS => http_build_query([ 'u' => 'api_user', 'p' => 'MyPass123', 'name' => 'סניף חיפה', 'radius' => 0.3, 'lat' => 32.794044, 'lng' => 34.989571, ]), ]); $response = json_decode(curl_exec($ch), true); curl_close($ch); if (!empty($response['status'])) { echo "Location added"; } else { echo "Failed: " . ($response['msg'] ?? 'unknown error'); }5.5 Python
import requests response = requests.post( "https://412.co.il/index.php/api/add_location", data={ # data= sends a form. Do NOT use json= "u": "api_user", "p": "MyPass123", "name": "סניף חיפה", "radius": 0.3, "lat": 32.794044, "lng": 34.989571, }, timeout=30, ) result = response.json() if result.get("status"): print("Location added") else: print("Failed:", result.get("msg", "unknown error"))5.6 JavaScript (Node.js 18 ומעלה)
const body = new URLSearchParams({ u: "api_user", p: "MyPass123", name: "סניף חיפה", radius: "0.3", lat: "32.794044", lng: "34.989571", }); const res = await fetch("https://412.co.il/index.php/api/add_location", { method: "POST", body, // URLSearchParams is sent as a form automatically. Do NOT use JSON.stringify }); const result = await res.json(); console.log(result.status ? "Location added" : "Failed: " + (result.msg || "unknown error"));הריצו את הקוד הזה בשרת שלכם, ולא בדפדפן של משתמשים, כדי שהסיסמה לא תיחשף.
5.7 C# (.NET)
using var client = new HttpClient(); var form = new FormUrlEncodedContent(new Dictionary<string, string> { ["u"] = "api_user", ["p"] = "MyPass123", ["name"] = "סניף חיפה", ["radius"] = "0.3", ["lat"] = "32.794044", ["lng"] = "34.989571", }); var response = await client.PostAsync("https://412.co.il/index.php/api/add_location", form); var json = await response.Content.ReadAsStringAsync(); Console.WriteLine(json); // {"status":true}ב-C# שימו לב להמיר מספרים לטקסט עם נקודה עשרונית (למשל value.ToString(CultureInfo.InvariantCulture)), כי בהגדרות אזוריות מסוימות מספרים נכתבים עם פסיק.
6. התשובה מהשרת
התשובה תמיד בפורמט JSON. השדה החשוב הוא status.
התשובה | מה היא אומרת | מה עושים |
| המקום נוסף בהצלחה לחברה של המשתמש. | אין צורך בפעולה נוספת. מומלץ לבדוק את המקום הראשון במסך (פרק 7). |
| לא נשלחו שם משתמש וסיסמה בכלל (לא | הוסיפו את הפרמטרים |
| ההזדהות נכשלה: שם משתמש או סיסמה שגויים, המשתמש לא פעיל, מוקפא או פג תוקף, תוקף החשבון של החברה פג, או שזה משתמש של עובד רגיל ולא של מנהל. | בדקו שאפשר להתחבר עם אותם פרטים למערכת דרך האתר, ושהמשתמש הוא מנהל (פרק 3.1). |
| ההזדהות הצליחה, אבל השמירה נכשלה. בדרך כלל בגלל ערך לא תקין, למשל טקסט בשדה של מספר ( | בדקו שהמספרים נשלחים כמספרים עם נקודה עשרונית, בלי יחידות ובלי פסיקים. |
תשובה שאינה JSON (למשל דף HTML או שגיאת שרת 500) | בדרך כלל ערך לא תקין שגרם לשגיאה בשמירה, או כתובת שגויה. | בדקו את הכתובת המדויקת ואת ערכי הפרמטרים. אם הבעיה נמשכת, פנו לתמיכה עם הבקשה המלאה (בלי הסיסמה). |
התשובה לא מחזירה את המזהה (ID) של המקום החדש. אם אתם צריכים לשמור קישור בין המקום במערכת שלכם לבין המקום אצלנו, השתמשו בשם המקום כמפתח, ושמרו אותו ייחודי.
6.1 קוד HTTP
השרת מחזיר בדרך כלל קוד HTTP 200 גם כשהפעולה נכשלה. לכן אל תסתמכו על קוד ה-HTTP כדי לדעת אם המקום נוסף. בדקו תמיד את הערך של status בגוף התשובה.
6.2 הוספה של הרבה מקומות
כל קריאה מוסיפה מקום אחד. כדי להוסיף כמה מקומות, קוראים ל-API פעם אחת לכל מקום (למשל בלולאה על השורות בקובץ).
מומלץ לקרוא בזה אחר זה ולא במקביל, ולבדוק את
statusשל כל קריאה. שמרו בצד את השורות שנכשלו, כדי לנסות אותן שוב.
6.3 מניעת כפילויות
ה-API לא בודק אם המקום כבר קיים. אם תריצו את אותו סקריפט פעמיים, כל המקומות ייווצרו פעמיים.
אם התקבלה שגיאת רשת או Timeout ולא קיבלתם תשובה, ייתכן שהמקום בכל זאת נוצר. לפני שמנסים שוב, בדקו במסך אם הוא כבר ברשימה.
שמרו במערכת שלכם אילו מקומות כבר נשלחו בהצלחה, וקראו ל-API רק עבור מקומות חדשים.
אם נוצרו כפילויות, מוחקים את המיותרים במסך (כפתור הפח ליד המקום).
7. בדיקה אחרי ההוספה
אחרי הקריאה הראשונה (ובכל פעם שמשנים את הקוד), בדקו את המקום במערכת:
נכנסים למערכת עם משתמש מנהל של אותה חברה.
בתפריט הראשי לוחצים על "ניהול דיווחים", ובוחרים "מקומות מותרים לדיווח".
בחלק "מיקומים מותרים לדיווח נוכחות" מחפשים את המקום לפי השם, בשדה החיפוש.
בודקים שהשם נכון, ושהעמודה "רדיוס אפשרי" מציגה את הרדיוס הנכון בקילומטרים (למשל
0.3KM).לוחצים על כפתור 📍 צפה במיקום (סיכה), ובודקים שהנקודה והעיגול נמצאים על המפה בדיוק במקום הנכון.
אם הנקודה במקום לא נכון (למשל באמצע הים או בחו"ל), כנראה ש-lat ו-lng הוחלפו. אפשר לתקן במסך עם כפתור העריכה (עיפרון), ולתקן גם את הקוד.
8. מה קורה אחרי שהמקום נוסף
מקום שנוסף דרך ה-API הוא מקום רגיל לכל דבר, בדיוק כמו מקום שנוסף במסך:
הוא מופיע ברשימת המקומות, ואפשר לערוך אותו, למחוק אותו ולצפות בו על המפה מהמסך.
הוא מופיע ברשימת הבחירה "מקומות מותרים לדיווח" בכרטיס העובד, בפעולה הקבוצתית "שייך מיקומים מורשים לדיווח" ברשימת העובדים, ובחלון "ערכי ברירת מחדל לעובד".
ה-API לא משייך את המקום לעובדים. מה שקובע מי יכול לדווח מהמקום החדש:
מצב העובד | האם יוכל לדווח מהמקום החדש? |
המגבלה "אפשר לדווח רק מהמקומות המותרים" כבויה | העובד מדווח מכל מקום, בלי קשר למקומות. המקום החדש לא משנה לו כלום. |
המגבלה פעילה, ורשימת המקומות של העובד ריקה (ריק = כל המקומות) | כן, מיד. כל מקום חדש של החברה מותר לו אוטומטית. |
המגבלה פעילה, ונבחרו לעובד מקומות מסוימים | לא, עד שמוסיפים לו את המקום החדש בכרטיס העובד או בפעולה הקבוצתית. |
ההסבר המלא על הפעלת המגבלה לעובדים, ברירת המחדל לעובדים חדשים ופתרון תקלות של עובדים בשטח, נמצא במדריך "הגדרת מקומות מותרים לדיווח נוכחות".
9. שאלות נפוצות ופתרון תקלות
קיבלתי {"status":true}, אבל המקום נוצר בלי שם או בלי מיקום
הנתונים כנראה נשלחו כ-JSON, או בשיטת GET, ולא כטופס ב-POST. ה-API קורא רק שדות טופס, ולכן השדות הגיעו ריקים. שלחו את הנתונים כ-application/x-www-form-urlencoded בשיטת POST (ראו את הדוגמאות בפרק 5). מחקו במסך את המקומות הריקים שנוצרו.
קיבלתי no authenticated (בלי נקודה)
השרת לא קיבל את u ואת p. בדקו שהם נשלחים כשדות בטופס או בכתובת, ולא בכותרות (Headers), ולא בתוך JSON.
קיבלתי no authenticated. (עם נקודה)
שם המשתמש או הסיסמה לא נכונים, או שהמשתמש לא מורשה. בדקו:
שאפשר להתחבר עם אותם פרטים בדיוק למערכת דרך האתר.
שהמשתמש הוא מנהל ולא עובד רגיל.
שהמשתמש פעיל, לא מוקפא, ושתוקף ההתחברות שלו לא פג.
שלא שיניתם לאחרונה את הסיסמה במערכת בלי לעדכן אותה בקוד.
שאין רווחים מיותרים לפני או אחרי שם המשתמש והסיסמה.
שתווים מיוחדים בסיסמה (כמו
&,+,#או%) מקודדים נכון. ספריות HTTP שמקבלות את הנתונים כרשימה (כמו בדוגמאות) עושות זאת לבד. אם בונים את המחרוזת ידנית, צריך לקודד.
המקום נוצר אצל חברה אחרת, או שאני לא רואה אותו
המקום נוסף תמיד לחברה של המשתמש שהזדהה. אם יש לכם כמה חברות במערכת, השתמשו במשתמש מנהל של החברה הנכונה. וודאו שאתם מחפשים את המקום במסך כשאתם מחוברים לאותה חברה.
יש פרמטר client (מזהה לקוח)?
לא. בגרסה קודמת של המדריך הופיע פרמטר כזה, אבל המערכת מתעלמת ממנו. החברה נקבעת לפי המשתמש. אפשר להשאיר אותו בקריאה, הוא פשוט לא משפיע.
אפשר לשלוח JSON?
לא. ה-API מקבל רק נתוני טופס (application/x-www-form-urlencoded או multipart/form-data).
אפשר לעדכן או למחוק מקום דרך ה-API?
לא. ה-API הזה רק מוסיף מקומות. עריכה ומחיקה נעשות במסך "מקומות מותרים לדיווח" (כפתור העיפרון לעריכה, וכפתור הפח למחיקה). קריאה חוזרת עם אותו שם לא מעדכנת את המקום הקיים, אלא יוצרת מקום נוסף.
אפשר לקבל את רשימת המקומות הקיימים דרך ה-API?
לא דרך ה-API הזה. את הרשימה רואים במסך "מקומות מותרים לדיווח".
אפשר לשייך את המקום לעובדים באותה קריאה?
לא. השיוך נעשה במערכת: בכרטיס העובד (לשונית "הגדרות משתמש"), בפעולה הקבוצתית "שייך מיקומים מורשים לדיווח" ברשימת העובדים, או בברירת המחדל לעובדים חדשים. עובדים עם מגבלה ורשימת מקומות ריקה יקבלו את המקום החדש אוטומטית (ראו פרק 8).
עובדים לא מצליחים לדווח מהמקום החדש
בדקו במסך שהנקודה על המפה במקום הנכון (אולי
latו-lngהוחלפו).בדקו שהרדיוס נשלח בקילומטרים.
0.03הוא 30 מטר בלבד, וזה קטן מדי.בדקו שהמקום משויך לעובד, אם נבחרו לו מקומות מסוימים (פרק 8).
אם הכול נכון, ראו את פרק פתרון התקלות במדריך "הגדרת מקומות מותרים לדיווח נוכחות" (GPS בטלפון, הרשאות מיקום לאפליקציה ועוד).
שלחתי רדיוס של 300 והעובדים מדווחים מכל מקום
הרדיוס הוא בקילומטרים, ולכן 300 הוא 300 קילומטר. תקנו במסך את הרדיוס של המקומות שכבר נוצרו (עיפרון ← רדיוס), ובקוד שלחו 0.3.
הגרש נעלם מהשם
זה מכוון. המערכת מוחקת גרשים (', ’, `) משמות של מקומות, גם במסך וגם ב-API. השתמשו בגרשיים (") או כתבו בלי גרש.
יש מגבלה על מספר הקריאות?
אין מגבלה רשמית, אבל כשמוסיפים הרבה מקומות, קראו ל-API בזה אחר זה ולא במקביל.
איפה אפשר לבדוק את הקריאה לפני שכותבים קוד?
ב-Postman (פרק 5.3) או בשורת הפקודה עם cURL (פרק 5.2). מומלץ להוסיף קודם מקום בדיקה אחד, לבדוק אותו במסך, ואז למחוק אותו.
למי פונים אם משהו לא עובד?
לתמיכה של EZTIME. צרפו את הכתובת שאליה קראתם, את שיטת הקריאה, את הפרמטרים ששלחתם (בלי הסיסמה), את התשובה המלאה שקיבלתם ואת השעה המשוערת של הקריאה.
10. סיכום: רשימת בדיקה לפני שמתחילים
✅ יש משתמש מנהל פעיל (מומלץ משתמש ייעודי ל-API), ואפשר להתחבר איתו לאתר.
✅ הקריאה נשלחת לכתובת
https://412.co.il/index.php/api/add_locationבשיטת POST.✅ הנתונים נשלחים כטופס (x-www-form-urlencoded), לא כ-JSON.
✅ נשלחים כל ששת הפרמטרים:
u,p,name,radius,lat,lng.✅ הרדיוס בקילומטרים (300 מטר =
0.3).✅
latהוא קו הרוחב ו-lngהוא קו האורך, עם נקודה עשרונית.✅ בודקים את
statusבתשובה, ולא את קוד ה-HTTP.✅ אחרי המקום הראשון, בודקים אותו במסך "מקומות מותרים לדיווח" ועל המפה.
✅ משייכים את המקום לעובדים במערכת, אם צריך.