JavaScript फ़्लीट ट्रैकिंग लाइब्रेरी सेट अप करना

JavaScript से बनी फ़्लीट ट्रैकिंग लाइब्रेरी का इस्तेमाल करने से पहले, पक्का करें कि आपको Fleet Engine के बारे में जानकारी हो और आपने इसे सेट अप किया हो. ज़्यादा जानकारी के लिए, Fleet Engine देखें.

इस दस्तावेज़ में, वेब पेज ऐप्लिकेशन और Fleet Engine के बीच अनुमति देने की सुविधा को चालू करने का तरीका बताया गया है. Fleet Engine को भेजे जाने वाले आपके अनुरोधों को सही ऑथराइज़ेशन टोकन के साथ सेट अप करने के बाद, आपके पास मैप पर किसी वाहन को ट्रैक करने का विकल्प होगा.

अनुमति देने की सुविधा सेट अप करना

Fleet Engine के लिए, कम भरोसे वाले एनवायरमेंट (स्मार्टफ़ोन और ब्राउज़र) से एपीआई के तरीके को कॉल करने के लिए, JSON वेब टोकन (JWT) का इस्तेमाल करना ज़रूरी है.

JWT आपके सर्वर पर जनरेट होता है. इस पर हस्ताक्षर किया जाता है, इसे एन्क्रिप्ट किया जाता है, और क्लाइंट को भेजा जाता है. यह तब तक सर्वर के साथ इंटरैक्ट करता है, जब तक इसकी समयसीमा खत्म नहीं हो जाती या यह मान्य नहीं रहता.

मुख्य जानकारी

अनुमति देने की सुविधा कैसे काम करती है?

Fleet Engine के डेटा के साथ अनुमति देने की सुविधा को लागू करने के लिए, सर्वर-साइड और क्लाइंट-साइड, दोनों का इस्तेमाल किया जाता है.

सर्वर-साइड से अनुमति देने की सुविधा

अपने फ़्लीट ट्रैकिंग ऐप्लिकेशन में पुष्टि करने और अनुमति देने की सुविधा सेट अप करने से पहले, आपके बैकएंड सर्वर के पास, Fleet Engine को ऐक्सेस करने के लिए, आपके फ़्लीट ट्रैकिंग ऐप्लिकेशन को JSON वेब टोकन जारी करने की सुविधा होनी चाहिए. आपका फ़्लीट ट्रैकिंग ऐप्लिकेशन, इन JWT को अपने अनुरोधों के साथ भेजता है, ताकि Fleet Engine इन अनुरोधों को पुष्टि किए गए और अनुरोध में मौजूद डेटा को ऐक्सेस करने की अनुमति के तौर पर पहचान सके. सर्वर-साइड पर JWT को लागू करने के निर्देशों के लिए, JSON वेब टोकन जारी करना देखें. यह जानकारी Fleet Engine की ज़रूरी बातें में दी गई है.

फ़्लीट ट्रैकिंग को लागू करते समय, अपने सर्वर से टोकन जनरेट करने के लिए, यह देखें:

क्लाइंट-साइड से अनुमति देने की सुविधा

JavaScript से बनी फ़्लीट ट्रैकिंग लाइब्रेरी का इस्तेमाल करने पर, यह अनुमति देने वाले टोकन फ़ेचर का इस्तेमाल करके, सर्वर से टोकन का अनुरोध करती है. यह तब होता है, जब इनमें से कोई भी शर्त पूरी होती है:

  • कोई मान्य टोकन मौजूद नहीं है. जैसे, जब एसडीके ने नए पेज लोड होने पर फ़ेचर को कॉल नहीं किया हो या जब फ़ेचर ने टोकन के साथ जवाब नहीं दिया हो.

  • टोकन की समयसीमा खत्म हो चुकी है.

  • टोकन की समयसीमा खत्म होने में एक मिनट से भी कम समय बचा है.

इसके अलावा, JavaScript से बनी फ़्लीट ट्रैकिंग लाइब्रेरी, पहले से जारी किए गए मान्य टोकन का इस्तेमाल करती है और फ़ेचर को कॉल नहीं करती.

अनुमति देने वाले टोकन फ़ेचर बनाना

अनुमति देने वाले टोकन फ़ेचर बनाने के लिए, इन दिशा-निर्देशों का इस्तेमाल करें:

  • फ़ेचर को दो फ़ील्ड वाला डेटा स्ट्रक्चर दिखाना होगा. इसे इस तरह Promise में रैप किया जाना चाहिए:

    • token स्ट्रिंग.

    • expiresInSeconds नंबर. फ़ेच करने के बाद, टोकन की समयसीमा इतने समय में खत्म हो जाती है. पुष्टि करने वाले टोकन फ़ेचर को, समयसीमा खत्म होने का समय सेकंड में पास करना होगा. यह समय, फ़ेच करने के समय से लेकर लाइब्रेरी तक का होना चाहिए. उदाहरण के लिए, यहां देखें.

  • टोकन पाने के लिए, फ़ेचर को आपके सर्वर पर मौजूद किसी यूआरएल को कॉल करना चाहिए. यह यूआरएल--SERVER_TOKEN_URL--आपके बैकएंड को लागू करने के तरीके पर निर्भर करता है. GitHub पर मौजूद सैंपल ऐप्लिकेशन के बैकएंड के लिए, यूआरएल का यह उदाहरण देखें:

    • https://SERVER_URL/token/fleet_reader

उदाहरण - अनुमति देने वाले टोकन फ़ेचर बनाना

अनुमति देने वाले टोकन फ़ेचर बनाने के तरीके के बारे में, यहां दिए गए उदाहरण देखें:

JavaScript

async function authTokenFetcher(options) {
  // options is a record containing two keys called
  // serviceType and context. The developer should
  // generate the correct SERVER_TOKEN_URL and request
  // based on the values of these fields.
  const response = await fetch(SERVER_TOKEN_URL);
  if (!response.ok) {
    throw new Error(response.statusText);
  }
  const data = await response.json();
  return {
    token: data.Token,
    expiresInSeconds: data.ExpiresInSeconds
  };
}

TypeScript

function authTokenFetcher(options: {
  serviceType: google.maps.journeySharing.FleetEngineServiceType,
  context: google.maps.journeySharing.AuthTokenContext,
}): Promise<google.maps.journeySharing.AuthToken> {
  // The developer should generate the correct
  // SERVER_TOKEN_URL based on options.
  const response = await fetch(SERVER_TOKEN_URL);
  if (!response.ok) {
    throw new Error(response.statusText);
  }
  const data = await response.json();
  return {
    token: data.token,
    expiresInSeconds: data.ExpiresInSeconds,
  };
}

आगे क्या करना है