JavaScript Consumer SDK सेट अप करना

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

JavaScript Consumer SDK टूल को सेट अप करने के लिए, यह तरीका अपनाएं:

  1. Maps JavaScript API को चालू करें.
  2. अनुमति सेट अप करना.

Maps JavaScript API को चालू करना

अपने Fleet Engine इंस्टेंस के लिए इस्तेमाल किए जा रहे Google Cloud Console प्रोजेक्ट में, Maps JavaScript API को चालू करें. ज़्यादा जानकारी के लिए, Maps JavaScript API के दस्तावेज़ में एपीआई चालू करें देखें.

अनुमति देने की प्रोसेस सेट अप करना

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

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

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

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

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

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

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

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

खास तौर पर, शिपमेंट को ट्रैक करने के लिए, JavaScript Consumer SDK के बारे में इन बातों का ध्यान रखें:

क्लाइंट-साइड अनुमति

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

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

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

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

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

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

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

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

    • स्ट्रिंग token.

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

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

    • https://SERVER_URL/token/delivery_consumer/TRACKING_ID

उदाहरण - पुष्टि करने वाला टोकन फ़ेच करने वाला फ़ंक्शन बनाना

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

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

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