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

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

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

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

Maps JavaScript API चालू करना

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

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

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

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

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

इसके उलट, आपके बैकएंड को ऐप्लिकेशन के डिफ़ॉल्ट क्रेडेंशियल के मानक तरीकों का इस्तेमाल करके, Fleet Engine के लिए पुष्टि करनी चाहिए और अनुमति देनी चाहिए.

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

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

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

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

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

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

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

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

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

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

अगर ऐसा नहीं है, तो JavaScript कंज़्यूमर 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,
  };
}

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