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

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

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

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

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

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

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

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

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

अहम जानकारी

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

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

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

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

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

खास तौर पर, शिपमेंट को ट्रैक करने के लिए, 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,
  };
}

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