java - फायरबेस क्लाउड मैसेजिंग बाकी एपीआई स्प्रिंग




spring-mvc firebase (2)

मुझे एक मल्टी टियर आर्क के लिए स्प्रिंग जावा में एक रेस्ट एपीआई बनाना है जिसमें डीएओ, कंट्रोलर, सर्विस मैनेजर को एंड्रॉइड एप्लिकेशन पर पुश नोटिफिकेशन संदेश भेजने के लिए फायरबेस क्लाउड मैसेजिंग (एफसीएम) के लिए निर्माण करना होगा, लेकिन मैं कॉन्फ़िगर नहीं कर सकता उपकरणों के लिए सूचनाएं भेजने के लिए जावा में एक सर्वर। मैं कैसे कर सकता हूं?


@ अपने FCM खाते को कॉन्फ़िगर करने के बाद अपने @Component वर्ग में FCM चुनें। tutorial


यहाँ तरीका है कि आप इसे प्राप्त कर सकते हैं:

चरण 1 : फायरबेस पर प्रोजेक्ट बनाएं और सर्वर कुंजी उत्पन्न करें।

चरण 2 : fcm सर्वर के लिए एक json ऑब्जेक्ट जनरेट करें। यहां संदेश में डेटा ऑब्जेक्ट और नोटिफिकेशन ऑब्जेक्ट हो सकते हैं। इसके पास रिसीवर fcm id भी होनी चाहिए। सैंपल जसन की तरह है:

{
    "notification":
        {
            "notificationType":"Test",
        "title":"Title ",
        "body":"Here is body"
        },
    "data":
        {"notificationType":"Test",
        "title":"Title ",
        "body":"Here is body"
        },
        "to":"dlDQC5OPTbo:APA91bH8A6VuJ1Wl4TCOD1mKT0kcBr2bDZ-X8qdhpBfQNcXZWlFJuBMrQiKL3MGjdY6RbMNCw0NV1UmbU8eooe975vvRmqrvqJvliU54bsiT3pdvGIHypssf7r-4INt17db4KIqW0pbAkhSaIgl1eYjmzIOQxv2NwwwwXg"
}

चरण 3 : एक शेष कॉलर सेवा लिखें जो url का अनुसरण करके fcm सर्वर के साथ संचार करेगी:

https://fcm.googleapis.com/fcm/send

यहाँ नमूना काम कोड है:

public class PushNotificationServiceImpl {
    private final String FIREBASE_API_URL = "https://fcm.googleapis.com/fcm/send";
    private final String FIREBASE_SERVER_KEY = "YOUR_SERVER_KEY";


    public void sendPushNotification(List<String> keys, String messageTitle, String message) {


        JSONObject msg = new JSONObject();

        msg.put("title", messageTitle);
        msg.put("body", message);
        msg.put("notificationType", "Test");

        keys.forEach(key -> {
            System.out.println("\nCalling fcm Server >>>>>>>");
            String response = callToFcmServer(msg, key);
            System.out.println("Got response from fcm Server : " + response + "\n\n");
        });

    }

    private String callToFcmServer(JSONObject message, String receiverFcmKey) {
        RestTemplate restTemplate = new RestTemplate();
        HttpHeaders httpHeaders = new HttpHeaders();
        httpHeaders.set("Authorization", "key=" + FIREBASE_SERVER_KEY);
        httpHeaders.set("Content-Type", "application/json");

        JSONObject json = new JSONObject();

        json.put("data", message);
        json.put("notification", message);
        json.put("to", receiverFcmKey);

        System.out.println("Sending :" + json.toString());

        HttpEntity<String> httpEntity = new HttpEntity<>(json.toString(), httpHeaders);
        return restTemplate.postForObject(FIREBASE_API_URL, httpEntity, String.class);
    }
}

आपको सिर्फ sendPushNotification(List<String> receiverKeys, String messageTitle, String message) को कॉल sendPushNotification(List<String> receiverKeys, String messageTitle, String message) होगा फिर रिसीवर को पुश संदेश मिलेगा

धन्यवाद :)





firebase-cloud-messaging