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

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

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

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

Maps JavaScript API चालू करना

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

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

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

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

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

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

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

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

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

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

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

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

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

  • कोई मान्य टोकन मौजूद नहीं है. जैसे, जब 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,
  };
}

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