एपीआई के बारे में जानने से पहले, पुश नोटिफ़िकेशन की सुविधा के बारे में शुरू से आखिर तक जानकारी पाएं. इसके बाद, जब हम अलग-अलग विषयों या एपीआई के बारे में जानेंगे, तब आपको पता चलेगा कि यह सुविधा कितनी ज़रूरी है और क्यों.
पुश नोटिफ़िकेशन की सुविधा लागू करने के तीन मुख्य चरण हैं:
- क्लाइंट साइड लॉजिक जोड़ना, ताकि उपयोगकर्ता को पुश नोटिफ़िकेशन की सुविधा के लिए सदस्यता दिलाई जा सके. जैसे, आपके वेब ऐप्लिकेशन में JavaScript और यूज़र इंटरफ़ेस (यूआई) जोड़ना, ताकि उपयोगकर्ता को पुश नोटिफ़िकेशन पाने के लिए रजिस्टर किया जा सके.
- आपके बैकएंड / ऐप्लिकेशन से एपीआई कॉल करना, ताकि उपयोगकर्ता के डिवाइस पर पुश नोटिफ़िकेशन भेजा जा सके.
- सर्विस वर्कर की JavaScript फ़ाइल, जिसे डिवाइस पर पुश नोटिफ़िकेशन पहुंचने पर "पुश इवेंट" मिलेगा. इस JavaScript की मदद से, सूचना दिखाई जा सकती है.
आइए, इन चरणों के बारे में ज़्यादा जानकारी पाएं.
पहला चरण: क्लाइंट साइड
पहला चरण, उपयोगकर्ता को पुश नोटिफ़िकेशन की सुविधा के लिए "सदस्यता दिलाना" है.
उपयोगकर्ता को सदस्यता दिलाने के लिए, दो चीज़ें ज़रूरी हैं. पहला, पुश नोटिफ़िकेशन भेजने के लिए, उपयोगकर्ता से अनुमति लेना. दूसरा, ब्राउज़र से PushSubscription पाना.
PushSubscription में वह सारी जानकारी होती है जिसकी मदद से, उपयोगकर्ता को पुश नोटिफ़िकेशन भेजा जा सकता है.
इसे उपयोगकर्ता के डिवाइस के लिए एक आईडी माना जा सकता है.
यह सब, Push API की मदद से JavaScript में किया जाता है.
उपयोगकर्ता को सदस्यता दिलाने से पहले, आपको "ऐप्लिकेशन सर्वर की कुंजियों" का सेट जनरेट करना होगा. इसके बारे में हम बाद में जानेंगे.
ऐप्लिकेशन सर्वर की कुंजियां, जिन्हें VAPID कुंजियां भी कहा जाता है, आपके सर्वर के लिए खास होती हैं. इनकी मदद से, पुश नोटिफ़िकेशन की सुविधा देने वाली कंपनी को यह पता चलता है कि किस ऐप्लिकेशन सर्वर ने उपयोगकर्ता को सदस्यता दिलाई है. साथ ही, यह भी पक्का किया जाता है कि उपयोगकर्ता को पुश नोटिफ़िकेशन भेजने वाला सर्वर वही है.
उपयोगकर्ता को सदस्यता दिलाने और PushSubscription मिलने के बाद, आपको PushSubscription की जानकारी अपने बैकएंड / सर्वर को भेजनी होगी. अपने सर्वर पर, आपको इस सदस्यता को डेटाबेस में सेव करना होगा. साथ ही, इसका इस्तेमाल करके उपयोगकर्ता को पुश नोटिफ़िकेशन भेजना होगा.
दूसरा चरण: पुश नोटिफ़िकेशन भेजना
उपयोगकर्ताओं को पुश नोटिफ़िकेशन भेजने के लिए, आपको पुश नोटिफ़िकेशन की सुविधा देने वाली कंपनी को एपीआई कॉल करना होगा. इस एपीआई कॉल में, यह जानकारी शामिल होगी कि कौन सा डेटा भेजना है, किसे मैसेज भेजना है, और मैसेज भेजने के तरीके के बारे में कोई शर्त है या नहीं. आम तौर पर, यह एपीआई कॉल आपके सर्वर से किया जाता है.
आपके मन में ये सवाल आ सकते हैं:
- पुश नोटिफ़िकेशन की सुविधा देने वाली कंपनी कौन है और यह क्या है?
- एपीआई कैसा दिखता है? क्या यह JSON, XML या कुछ और है?
- एपीआई की मदद से क्या-क्या किया जा सकता है?
पुश नोटिफ़िकेशन की सुविधा देने वाली कंपनी कौन है और यह क्या है?
पुश सेवा, नेटवर्क का अनुरोध स्वीकार करती है, उसकी पुष्टि करती है, और सही ब्राउज़र को पुश मैसेज भेजती है. अगर ब्राउज़र ऑफ़लाइन है, तो मैसेज को तब तक लाइन में रखा जाता है, जब तक ब्राउज़र ऑनलाइन नहीं हो जाता.
हर ब्राउज़र, अपनी पसंद की पुश नोटिफ़िकेशन की सुविधा देने वाली कंपनी का इस्तेमाल कर सकता है. इस पर डेवलपर का कोई कंट्रोल नहीं होता. इससे कोई समस्या नहीं होती, क्योंकि पुश नोटिफ़िकेशन की सुविधा देने वाली हर कंपनी को एक ही एपीआई कॉल की ज़रूरत होती है. इसका मतलब है कि आपको यह जानने की ज़रूरत नहीं है कि पुश नोटिफ़िकेशन की सुविधा देने वाली कंपनी कौन है. आपको बस यह पक्का करना है कि आपका एपीआई कॉल मान्य हो.
पुश नोटिफ़िकेशन भेजने के लिए सही यूआरएल (यानी, पुश नोटिफ़िकेशन की सुविधा देने वाली कंपनी का यूआरएल) पाने के लिए, आपको बस PushSubscription में endpoint की वैल्यू देखनी होगी.
यहां PushSubscription से मिलने वाली वैल्यू का एक उदाहरण दिया गया है:
{
"endpoint": "https://random-push-service.com/some-kind-of-unique-id-1234/v2/",
"keys": {
"p256dh": "BNcRdreALRFXTkOOUHK1EtK2wtaz5Ry4YfYCA_0QTpQtUbVlUls0VJXg7A8u-Ts1XbjhazAkj7I99e8QcYP7DkM=",
"auth": "tBHItJI5svbpez7KI4CCXg=="
}
}
इस मामले में, एंडपॉइंट https://random-push-service.com/some-kind-of-unique-id-1234/v2/ है. पुश नोटिफ़िकेशन की सुविधा देने वाली कंपनी 'random-push-service.com' होगी. साथ ही, हर एंडपॉइंट, उपयोगकर्ता के लिए खास होता है. इसे 'some-kind-of-unique-id-1234' से दिखाया जाता है. पुश नोटिफ़िकेशन की सुविधा का इस्तेमाल करने पर, आपको यह पैटर्न दिखेगा.
सदस्यता में मौजूद कुंजियों के बारे में बाद में बताया जाएगा.
एपीआई कैसा दिखता है?
मैंने बताया कि वेब पुश नोटिफ़िकेशन की सुविधा देने वाली हर कंपनी को एक ही एपीआई कॉल की ज़रूरत होती है. वह एपीआई, Web Push Protocol है. यह IETF का एक स्टैंडर्ड है. इसमें बताया गया है कि पुश नोटिफ़िकेशन की सुविधा देने वाली कंपनी को एपीआई कॉल कैसे किया जाता है.
एपीआई कॉल के लिए, कुछ हेडर सेट करने होते हैं. साथ ही, डेटा को बाइट की स्ट्रीम के तौर पर भेजना होता है. हम उन लाइब्रेरी के बारे में जानेंगे जो हमारे लिए यह एपीआई कॉल कर सकती हैं. साथ ही, यह भी जानेंगे कि इसे खुद कैसे किया जा सकता है.
एपीआई की मदद से क्या-क्या किया जा सकता है?
एपीआई की मदद से, उपयोगकर्ता को डेटा के साथ या बिना डेटा के मैसेज भेजा जा सकता है. साथ ही, मैसेज भेजने के तरीके के बारे में निर्देश दिए जा सकते हैं.
पुश नोटिफ़िकेशन के साथ भेजा गया डेटा एन्क्रिप्ट (सुरक्षित) किया जाना चाहिए. ऐसा इसलिए किया जाता है, ताकि पुश नोटिफ़िकेशन की सुविधा देने वाली कंपनियां, पुश नोटिफ़िकेशन के साथ भेजे गए डेटा को न देख पाएं. पुश नोटिफ़िकेशन की सुविधा देने वाली कंपनियां कोई भी हो सकती हैं. यह ज़रूरी है, क्योंकि ब्राउज़र ही यह तय करता है कि किस पुश नोटिफ़िकेशन की सुविधा का इस्तेमाल करना है. इससे, ब्राउज़र ऐसी पुश नोटिफ़िकेशन की सुविधा का इस्तेमाल कर सकते हैं जो सुरक्षित न हो.
पुश नोटिफ़िकेशन भेजने पर, पुश नोटिफ़िकेशन की सुविधा देने वाली कंपनी को एपीआई कॉल मिलेगा और मैसेज को लाइन में रखा जाएगा. यह मैसेज तब तक लाइन में रहेगा, जब तक उपयोगकर्ता का डिवाइस ऑनलाइन नहीं हो जाता और पुश नोटिफ़िकेशन की सुविधा देने वाली कंपनी मैसेज नहीं भेज देती. पुश नोटिफ़िकेशन की सुविधा देने वाली कंपनी को दिए जाने वाले निर्देशों से यह तय होता है कि पुश नोटिफ़िकेशन को लाइन में कैसे रखा जाए.
निर्देशों में ये जानकारी शामिल होती है:
पुश नोटिफ़िकेशन के लिए टाइम-टू-लाइव. इससे यह तय होता है कि मैसेज को कितने समय तक लाइन में रखा जाना चाहिए. इसके बाद, उसे हटा दिया जाता है और भेजा नहीं जाता.
मैसेज की प्राथमिकता तय करना. यह तब काम आता है, जब पुश नोटिफ़िकेशन की सुविधा देने वाली कंपनी, सिर्फ़ ज़्यादा प्राथमिकता वाले मैसेज भेजकर उपयोगकर्ताओं के डिवाइस की बैटरी लाइफ़ बचा रही हो.
पुश नोटिफ़िकेशन को "विषय" का नाम देना. इससे, लाइन में मौजूद कोई भी मैसेज, इस नए मैसेज से बदल जाएगा.
तीसरा चरण: उपयोगकर्ता के डिवाइस पर पुश इवेंट
पुश नोटिफ़िकेशन भेजने के बाद, पुश नोटिफ़िकेशन की सुविधा देने वाली कंपनी, आपके मैसेज को अपने सर्वर पर तब तक सेव रखेगी, जब तक इनमें से कोई एक इवेंट नहीं हो जाता:
- डिवाइस ऑनलाइन हो जाता है और पुश नोटिफ़िकेशन की सुविधा देने वाली कंपनी मैसेज भेज देती है.
- मैसेज की समयसीमा खत्म हो जाती है. ऐसा होने पर, पुश नोटिफ़िकेशन की सुविधा देने वाली कंपनी, मैसेज को लाइन से हटा देती है और उसे कभी नहीं भेजा जाता.
जब पुश नोटिफ़िकेशन की सुविधा देने वाली कंपनी कोई मैसेज भेजती है, तो ब्राउज़र को वह मैसेज मिलता है. इसके बाद, ब्राउज़र डेटा को डिक्रिप्ट करता है और आपके सर्विस वर्कर में push इवेंट भेजता है.
एक सर्विस वर्कर एक "खास" JavaScript फ़ाइल होती है. ब्राउज़र, आपके पेज के खुले बिना भी इस JavaScript को एक्ज़ीक्यूट कर सकता है. यहां तक कि ब्राउज़र बंद होने पर भी, यह JavaScript को एक्ज़ीक्यूट कर सकता है. सर्विस वर्कर के पास पुश नोटिफ़िकेशन जैसे एपीआई भी होते हैं.ये एपीआई, वेब पेज पर उपलब्ध नहीं होते. जैसे, वे एपीआई जो सर्विस वर्कर स्क्रिप्ट के बाहर उपलब्ध नहीं होते.
सर्विस वर्कर के 'पुश' इवेंट में, बैकग्राउंड में कोई भी टास्क किया जा सकता है. यहां, Analytics कॉल किए जा सकते हैं, पेजों को ऑफ़लाइन के लिए कैश किया जा सकता है, और सूचनाएं दिखाई जा सकती हैं.
पुश नोटिफ़िकेशन की सुविधा का पूरा फ़्लो यही है.
इसके बाद क्या करें
- वेब पुश नोटिफ़िकेशन की खास जानकारी
- पुश नोटिफ़िकेशन की सुविधा कैसे काम करती है
- उपयोगकर्ता को सदस्यता दिलाना
- अनुमति के लिए यूएक्स
- वेब पुश लाइब्रेरी की मदद से मैसेज भेजना
- Web Push Protocol
- पुश इवेंट मैनेज करना
- सूचना दिखाना
- सूचना का व्यवहार
- सूचना के सामान्य पैटर्न
- पुश नोटिफ़िकेशन से जुड़े अक्सर पूछे जाने वाले सवाल
- आम समस्याएं और गड़बड़ियों की शिकायत करना