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

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

अहम जानकारी

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

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

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

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

वेब पर आधारित ऐप्लिकेशन में पुष्टि और अनुमति सेट अप करने से पहले, आपके बैकएंड सर्वर के पास, वेब पर आधारित ऐप्लिकेशन को JSON वेब टोकन जारी करने की सुविधा होनी चाहिए, ताकि वह Fleet Engine को ऐक्सेस कर सके. आपका वेब पर आधारित ऐप्लिकेशन, इन 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,
  };
}

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