FCM과 PostMan으로 쉽게 Push알람 보내기

Updated:

FCM Push알람을 PostMan을 통하여 쉽게 보내기

Android 앱 FCM 설정

안녕하세요. 이 포스트는 FireBase가입, 프로젝트 생성, Android 앱에 Firebase 추가가 완료된 상태라고 전제를 둔 상황에서 작성한 게시글입니다. 앞서말한 자세한 방법은 플랫폼 개발팀 기술 블로그에서 #2 ~ #3 단계에서 정말 자세히 나와있습니다. 참고하셔서 작성하시고,

의 테스트가 완료 된 이후에 제 포스트를 봐주세요!

목표

저의 목표는 FCM 서버에서 클라이언트 기기로 메세지를 송신하는 것 까지는 성공하였지만 더이상 진전이 없어, subscribe를 통하여 여러 디바이스에 각각 푸시알람을 보내는 것입니다.

PostMan 설정

먼저 PostMan을 받으셔야겠죠? PostMan에서 받아줍시당!

이후 로그인까지 완료하면, 왼쪽 상단의 NEW! 를 클릭

Requset를 눌러줍시다.

원하시는 이름과 그룹을 설정해 주시고

이제 이 화면에 도달합니다!

먼저 이 PostMan 서버가 HTTP 요청을 하려면 FCM 서버로 연결해야겠죠? 따라서

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

을 넣어주시고 FCM 서버에 보내기 위해 POST로 바꾸어 줍니다. 이후 Header를 설정해줘야하는데.. Authorization에 Firebase 서버 key를 등록해주시고, Content-Type에 application/json을 넣어주세요!

Firebase 서버 key는 `Firebase 콘솔 -> 톱니바퀴 -> 프로젝트 설정 -> 클라우딩 메세지에 있습니당

이후 앞선 과정을 완료하면 이렇게 됩니다

주제 구독 설정

이제 각 앱 마다 주제를 구독을 설정해 주는 작업을 합시다. 간단히 아래와 같이 MainActivity에 작성해주면, 이 앱은 weather를 구독하게 됩니다.

FirebaseMessaging.getInstance().subscribeToTopic("weather")
                .addOnCompleteListener(new OnCompleteListener<Void>() {
                    @Override
                    public void onComplete(@NonNull Task<Void> task) {
                        String msg = "Topic weather is subscribed";
                        if (!task.isSuccessful()) {
                            msg = "Topic weather subscribing failed";
                        }
                        Log.d("FCMTest", msg);
                        Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show();
                    }
                });

간단히

FirebaseMessaging.getInstance().subscribeToTopic("weather");

처럼 해주셔도 됩니다.

PostMan으로 전송

이제 PostMan 서버에서 (앱서버) FCM서버로 메세지를 보내봅시다!.

Body에 들어가 Raw 그리고 Json으로 설정한 후

{
  "to": "/topics/weather",
  "notification": {
    "title": "Breaking News",
    "body": "New news story available."
  }
}

다음과 같이 작성하시면 됩니다!

"to": "/topics/weather"

라는 것은 weather라고 구독한 앱에 메세지를 전송하겠다는 것이며,

"notification": {
    "title": "Breaking News",
    "body": "New news story available."
  }

이것은 푸시 메세지를 설정해 줍니다. title과 body를 써주는 것이죠.

이제 send를 해봅시다. 될까요? 아 이전에 애플리케이션을 빌드하고 설치 해주셔야하는거 잊지마세요!

넵! 제대로 왔네요!!

이를 통해 PostMan으로 Weather가 구독된 애플리케이션을 FCM 서버에 메세지를 전송하라고 보내, 실제로 수신했다는걸 보았습니다.

만약 weathersunny 모두 동시에 구독 된 앱만 메세지를 보내고 싶으면 어떻게 할까요?

방법은

{
  "condition": "'weather' in topics && 'sunny' in topics",
  "notification": {
    "title": "Breaking News",
    "body": "New news story available."
  }
}

입니다.

“to” 매개변수는 하나의 구독만 보냈지만 “condition” 매개변수를 통해 논리식을 지정 할 수 있어요!

이외에도 다양한 매개변수를 설정하거나, 밑의 결과 출력이 의미하는 것은 Firebase공식문서에 자세히 나와있습니다!

결론

이상으로 PostMan으로 FCM을 이용해 보았습니다. 많이 부족하지만 읽어주셔서 감사드립니다.

Categories:

Updated: