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

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

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

अनुमति सेट अप करना

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

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

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

पुष्टि करने की प्रोसेस कैसे काम करती है?

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

सर्वर-साइड से अनुमति लेना

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

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

क्लाइंट-साइड ऑथराइज़ेशन

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,
  };
}

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