יצירת נסיעה וקבלת טוקן נסיעה

כדי להפעיל בצורה מאובטחת סשן ניווט מפורט לנהג, ה-Backend צריך ליצור נסיעה ולקבל טוקן נסיעה מאומת מ-Navigation Connect API.

ב-Navigation Connect, נסיעה מייצגת פעילות ניווט ליעד יחיד. כדי ליצור נסיעה ולקבל את אסימון הנסיעה המאומת (authToken) שנדרש לאישור הפעילות, שולחים הודעה CreateTripRequest לשיטה CreateTrip. מעבירים את אסימון הנסיעה לאפליקציה לנייד כדי לכלול אותו בכתובת ה-URL להפעלה של מפות Google או Waze.

במדריך הזה מוסבר איך להשלים את התהליך הזה על ידי יצירת מזהה נסיעה ייחודי ושליחת בקשת ה-API.

כתיבת הודעה CreateTripRequest

כדי ליצור נסיעה ולקבל אסימון נסיעה, מבצעים את השלבים הבאים כדי ליצור ולשלוח הודעת CreateTripRequest:

  1. אימות: משתמשים בApplication Default Credentials‏ (ADC) כדי לקבל אסימון גישה לאישור הבקשה. פרטים נוספים זמינים במאמר יצירת אסימון OAuth.
  2. יצירת מזהה נסיעה: יוצרים מזהה נסיעה ייחודי (tripId) בפורמט UUIDv4 כדי לזהות את הנסיעה בשרת.
  3. יוצרים את המטען הייעודי (payload): יוצרים מטען ייעודי בפורמט JSON שכולל את מזהי האפליקציות והגדרות התצורה.
  4. קוראים לשיטה CreateTrip: שולחים בקשת POST ל-API עם אסימון הגישה בכותרת והמטען הייעודי בגוף.

בדוגמה הבאה אפשר לראות איך יוצרים נסיעה באמצעות שליחת הודעה מסוג CreateTripRequest:

#!/bin/bash

# Authenticate with ADC
access_token="$(gcloud auth application-default login --impersonate-service-account=SERVICE_ACCOUNT_EMAIL)"

# Generate a unique Trip ID
trip_id="$(uuidgen)"

# Construct the payload
payload=$(cat <<EOF
{
  "androidAppId": "ANDROID_APP_ID",
  "iosAppId": "IOS_APP_ID",
  "config": {
    "enablePubsub": true
  }
}
EOF
)

# Call the CreateTrip method to request a trip token
curl -X POST "https://navigationconnect.googleapis.com/v1/projects/PROJECT_ID/trips?tripId=${trip_id}" \
-H "Authorization: Bearer ${access_token}" \
-H "Content-Type: application/json" \
-d "${payload}"

הגדרות אופציונליות

אפשר להתאים אישית את נתוני הנסיעה על ידי שינוי ההגדרות הבאות בהודעה CreateTripRequest:

תכונה סוג תיאור
דיווח על שאר המסלול (Waze בלבד) boolean

כדי לקבל את קו הפוליגון של המסלול הפעיל ואת מצב התנועה בזמן אמת, מגדירים את config.enableRemainingRouteReporting לערך true.

תדירות העדכון של נתוני הנסיעה boolean

כברירת מחדל, Navigation Connect מעדכן את נתוני הנסיעה כל 60 שניות. כדי להפעיל עדכונים בתדירות גבוהה (כל 5 שניות), מגדירים את config.enableHighFrequencyUpdates לערך true.

יצירת אירועים ב-Google Cloud Pub/Sub boolean

כדי להפעיל יצירה של אירועים שקשורים לנסיעות באמצעות Google Cloud Pub/Sub, מגדירים את config.enablePubsub לערך true. התכונה הזו מושבתת כברירת מחדל.

מסכת שדות של Google Cloud Pub/Sub FieldMask

כדי לנהל את גודל המטען הייעודי (payload) ולהפחית את עומס העיבוד בקצה העורפי או את עלויות השימוש ב-Google Cloud Pub/Sub, אפשר להשתמש ב-config.pubsubFieldMask כדי להחריג שדות כבדים (כמו execution.remainingRoute) מזרם האירועים. מידע נוסף על גודל מטען הייעודי (payload) של נתוני המסלול שנותרו זמין במאמר בנושא טיפול בנתוני המסלול שנותרו.

אחזור טוקן הנסיעה מהתגובה

השיטה CreateTrip מחזירה תגובה שמכילה את טוקן הנסיעה המאומת. כדי לאשר את סשן הניווט, צריך לחלץ את הטוקן הזה מהתגובה ולהעביר אותו לאפליקציה לנייד כדי לכלול אותו בכתובת ה-URL להפעלה.

דוגמת הקוד הבאה מציגה תגובה:

{
    "name": "projects/PROJECT_NUMBER/trips/TRIP_ID",
  "authToken": {
    "token": "BASE64_ENCODED_TRIP_TOKEN",
    "expireTime": "2026-03-06T11:09:47.476942Z"
  },
  "state": "NEW",
  "execution": {
    "traveledDistanceMeters": 0,
    "stopAddedInRoute": false
  },
  "createTime": "2026-03-05T23:09:50.768959Z",
  "updateTime": "2026-03-05T23:09:50.768959Z"
}

התשובה הזו כוללת את הערכים הבאים:

  • PROJECT_NUMBER: מזהה מספרי ייחודי של הפרויקט. המספר הזה שונה ממזהה הפרויקט האלפאנומרי, אבל הוא מייצג את אותו פרויקט בענן של Google Cloud.
  • TRIP_ID: מזהה הנסיעה שנוצר על ידי ה-Backend בפורמט UUIDv4.
  • BASE64_ENCODED_TRIP_TOKEN: אסימון הנסיעה המאומת (authToken.token) שמוחזר על ידי השיטה CreateTrip. מעבירים את האסימון הזה לאפליקציה לנייד כדי להתחיל ניווט מפורט במפות Google או ב-Waze.

המאמרים הבאים

משתמשים באסימון הנסיעה כדי להפעיל את מפות Google או את Waze.

הפעלת מפות Google או Waze