1. शुरुआती जानकारी
FCM लेगसी एपीआई की तुलना में, FCM HTTP v1 API, कम समय के लिए ऐक्सेस टोकन का इस्तेमाल करके ज़्यादा सुरक्षित अनुमति मॉडल उपलब्ध कराता है. FCM v1 API के लिए ऐक्सेस टोकन जनरेट करने का तरीका, लेगसी एपीआई के तरीके से काफ़ी अलग है.
इस कोडलैब में, क्लाइंट और सर्वर साइड सेटअप करने की प्रोसेस के बारे में बताया गया है. इससे FCM HTTP v1 API का इस्तेमाल करके, Android ऐप्लिकेशन को पुश नोटिफ़िकेशन भेजने की सुविधा चालू की जा सकती है. इसमें v1 API के लिए क्रेडेंशियल जनरेट करने का मुख्य चरण हाइलाइट किया गया है.
ज़्यादा जानकारी के लिए, यहां जाएं:
ज़रूरी शर्तें
- Java और Android डेवलपमेंट की बुनियादी जानकारी
आपको क्या सीखने को मिलेगा
- FCM HTTP v1 API का इस्तेमाल करके, अपने Android ऐप्लिकेशन पर पुश नोटिफ़िकेशन भेजने की सुविधा चालू करने के लिए, क्लाइंट और सर्वर साइड सेटअप करने का तरीका
- सेवा खातों का इस्तेमाल करके, HTTP v1 API के लिए क्रेडेंशियल जनरेट करना
- एचटीटीपी v1 एपीआई के ज़रिए टेस्ट मैसेज भेजना
आपको इनकी ज़रूरत होगी
Android Studio का नया स्टेबल वर्शन
इनमें से कोई एक डिवाइस:
- आपके कंप्यूटर से कनेक्ट किया गया कोई Android डिवाइस
- Android एम्युलेटर (Android एम्युलेटर पर ऐप्लिकेशन चलाना लेख पढ़ें)
आपकी पसंद का Java डेवलपमेंट एनवायरमेंट या कोड एडिटर
2. Firebase प्रोजेक्ट और Android ऐप्लिकेशन सेट अप करना
कोड लैब के आखिर में, Firebase Cloud Messaging का इस्तेमाल करके अपने ऐप्लिकेशन पर मैसेज भेजे जा सकेंगे. ऐसा करने से पहले, आपको एक Firebase प्रोजेक्ट बनाना होगा. इस कोडलैब में, एक Android ऐप्लिकेशन भी दिया गया है. इसमें FCM के साथ इंटिग्रेट करने के लिए सैंपल कोड मौजूद है.
Firebase प्रोजेक्ट सेटअप करना
- इस कोडलैब के लिए अपना Firebase प्रोजेक्ट बनाने के लिए, "पहला चरण: Firebase प्रोजेक्ट बनाएं" को फ़ॉलो करें.
Android ऐप्लिकेशन सेटअप करना
इस कोडलैब में दिए गए Android ऐप्लिकेशन के सैंपल में, FCM पहले से ही इंटिग्रेट किया गया है. शुरू होने के बाद, यह FCM सर्वर के साथ रजिस्टर हो जाएगा और किसी विषय की सदस्यता ले लेगा. इस कोडलैब के बाद के चरणों में, आपको विषय के हिसाब से मैसेज भेजने का तरीका बताया जाएगा. इससे आपका ऐप्लिकेशन, मैसेज पा सकेगा.
- Firebase Android Quickstart का सैंपल डाउनलोड करें.
- Android Studio में, https://github.com/firebase/quickstart-android/tree/master/messaging में मौजूद प्रोजेक्ट इंपोर्ट करें.
- ऐप्लिकेशन को Firebase कंसोल में रजिस्टर करें. ऐप्लिकेशन का नाम
com.google.firebase.quickstart.fcm
है. "दूसरा चरण: अपने ऐप्लिकेशन को Firebase में रजिस्टर करें" सेक्शन में दिए गए निर्देशों का पालन करके, इस ऐप्लिकेशन को अपने Firebase प्रोजेक्ट में रजिस्टर करें. google-services.json
डाउनलोड करने और उसे अपने प्रोजेक्ट में जोड़ने के लिए, "तीसरा चरण: Firebase कॉन्फ़िगरेशन फ़ाइल जोड़ें" का पहला हिस्सा पढ़ें. प्रोजेक्ट बनाएं और उसे चलाएं.
3. ऐप्लिकेशन सर्वर सेट अप करना
ऐप्लिकेशन सेट अप करने के बाद, आपको सर्वर-साइड कोड का सैंपल डाउनलोड करना होगा. इससे FCM v1 API का इस्तेमाल करके, अपने ऐप्लिकेशन पर मैसेज भेजे जा सकेंगे. यह कोड, ऐक्सेस टोकन जनरेट करने के लिए एपीआई क्रेडेंशियल लोड करता है. इनके बारे में अगले सेक्शन में बताया गया है. इसके बाद, यह FCM की विषय के हिसाब से मैसेज भेजने की सुविधा का इस्तेमाल करके, आपके ऐप्लिकेशन को मैसेज भेजता है.
- GitHub प्रोजेक्ट डाउनलोड करके, स्टार्टर सर्वर कोड इंपोर्ट करें. "messaging" प्रोजेक्ट, Gradle पर आधारित Java प्रोजेक्ट है. यह firebase-admin SDK टूल पर निर्भर करता है. यह SDK टूल, मैसेज भेजने की सुविधा देता है.
ऐप्लिकेशन सर्वर को FCM के साथ कैसे काम करना चाहिए, इस बारे में ज़्यादा जानकारी के लिए, आपका सर्वर एनवायरमेंट और FCM दस्तावेज़ पढ़ें.
4. v1 के क्रेडेंशियल पाना
FCM HTTP v1 API, OAuth2 सुरक्षा मॉडल के मुताबिक कम समय के लिए इस्तेमाल किए जाने वाले ऐक्सेस टोकन का इस्तेमाल करता है. FCM के लेगसी एपीआई में इस्तेमाल की जाने वाली स्टैटिक एपीआई कुंजी की तुलना में, कम समय के लिए इस्तेमाल किया जाने वाला ऐक्सेस टोकन, क्रेडेंशियल लीक होने के जोखिम से कम प्रभावित होता है. इस सेक्शन में, एपीआई को कॉल करने के लिए इस्तेमाल किए जाने वाले ऐक्सेस टोकन को जनरेट करने के लिए क्रेडेंशियल बनाने का तरीका बताया गया है.
- Firebase सेवा खाता सेट अप करें, ताकि Firebase Admin SDK, FCM API को कॉल करने की अनुमति दे सके. Firebase कंसोल में प्रोजेक्ट सेटिंग खोलें और सेवा खाते टैब चुनें. कॉन्फ़िगरेशन स्निपेट डाउनलोड करने के लिए, नई निजी कुंजी जनरेट करें पर क्लिक करें.
- डाउनलोड किए गए GitHub प्रोजेक्ट में, डाउनलोड की गई फ़ाइल का नाम बदलकर
service-account.json
करें. इसके बाद, इसे प्रोजेक्ट केmessaging/
पाथ पर कॉपी करें. Messaging.java
क्लास में मौजूदgetAccessToken()
तरीके (नीचे दिखाया गया है) से, एक OAuth2 टोकन जनरेट होता है. यह टोकन एक घंटे के लिए मान्य होता है.
private static String getAccessToken() throws IOException { GoogleCredentials googleCredentials = GoogleCredentials.fromStream(new FileInputStream("service-account.json")).createScoped(Arrays.asList(SCOPES)); googleCredentials.refresh(); return googleCredentials.getAccessToken().getTokenValue(); }
- मुख्य तरीके में बदलाव करके, यह लाइन जोड़ें:
public static void main(String[] args) throws IOException { System.out.println(getAccessToken()); ... }
- अपने टर्मिनल में मैसेजिंग/ प्रोजेक्ट डायरेक्ट्री पर जाएं और यह टाइप करें:
./gradlew run -Pmessage=common-message
OAuth2 टोकन को प्रिंट करने के लिए.
ज़्यादा जानकारी के लिए, ईमेल भेजने के अनुरोधों को अनुमति देना लेख पढ़ें.
5. REST API की मदद से मैसेज भेजना
अब HTTP v1 API के ज़रिए मैसेज भेजा जा सकता है. नीचे दिए गए चरणों का पालन करें:
- एचटीटीपी अनुरोध के हेडर में ऐक्सेस टोकन जोड़ने के लिए:
- टोकन को, Authorization हेडर की वैल्यू के तौर पर इस फ़ॉर्मैट में जोड़ें
Authorization: Bearer <access_token>
- curl का इस्तेमाल करके, FCM v1 API को एचटीटीपी अनुरोध करें:
curl -s -X POST -H "Content-Type: application/json" -H "Authorization: Bearer $OAuth2_token" -H "X-GFE-SSL: yes" -d "{\"message\": {\"topic\": \"$topic_name\", \"notification\": {\"title\": \"breaking news\", \"body\": \"This is breaking news\"}}}" https://fcm.googleapis.com/v1/projects/[PROJECT_NAME]/messages:send
ऊपर दिया गया $topic_name
, Firebase प्रोजेक्ट और Android ऐप्लिकेशन के सेटअप में बताए गए Android ऐप्लिकेशन के कोड में देखा जा सकता है. डिफ़ॉल्ट रूप से, यह "weather"
पर सेट होता है.
- मैसेज डिलीवर होने के बाद, आपको अपनी स्क्रीन पर एक सूचना दिखेगी. यह सूचना, यहां दी गई इमेज में दिखाई गई सूचना की तरह होगी:
6. नतीजा
बधाई हो! आपने इन कामों के लिए कोडलैब पूरा कर लिया है:
- Firebase प्रोजेक्ट सेट अप करना
- Android ऐप्लिकेशन के साथ Firebase को इंटिग्रेट करना
- FCM HTTP v1 API के लिए क्रेडेंशियल बनाना
- FCM HTTP v1 API के ज़रिए अपने ऐप्लिकेशन को मैसेज भेजना
FCM की बेहतर सुविधाओं के बारे में जानने के लिए, यहां दिए गए लिंक देखें: