Developer/Posting

[Firebase_FCM] API 테스트 툴을 통한 푸시알람 테스트 (feat. Postman)

codingzipsa 2023. 4. 18. 22:12
반응형

각 앱 푸시알람을 위해 구글에서 제공하고 있는 클라우드 메세징(FCM)을 많이들 쓰실 것이라고 생각한다. 나 또한 이전 토이 프로젝트부터 실무까지 두루두루 잘 사용하고 있는 솔루션으로서 사용하고 있는데 생각보다 인터넷에 있는 자료들이 시간이 지나있고 대부분 Server Key를 발급받아서 사용하라는 방법이 나오는데 비해 기존에 발급받은 credential Json 파일을 활용하여 테스트하는 방법은 잘 드러나지 않아 있는 것 같아 포스팅해본다. 

한줄로 정리하자면 Postman으로 간단하게 푸시 알람 발송 테스트해볼 수 있는 내용에 대해 적어보고자 한다.

1. 들어가기 앞서

- 기본적으로 Firebase에서 진행하다보면 발급받게 되는 Json 타입의 비공개 파일이 필요하다.

https://firebase.google.com/docs/admin/setup?hl=ko 

 

서버에 Firebase Admin SDK 추가

5월 10일, Google I/O에서 Firebase가 돌아옵니다. 지금 등록하기 의견 보내기 서버에 Firebase Admin SDK 추가 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Admin SDK는

firebase.google.com

2. Postman 테스트

1) Google Clould SDK 설치

구글에서 제공하고 있는 설치 파일을 통해 gcloud CLI를 설치한다.

https://cloud.google.com/sdk/docs/install

 

gcloud CLI 설치  |  Google Cloud

gcloud CLI 설치 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 이 페이지에는 Google Cloud CLI 설치를 선택하고 유지하기 위한 안내가 포함되어 있습니다. Google Cl

cloud.google.com

설치파일에서 별다른 설정없이 설치를 완료해주고 터미널을 열어 하기 명령어를 입력, 로그인을 진행한다.

gcloud auth login

명령어 입력 시 별도로 인터넷 창이 뜨며 쉽게 구글 아이디를 활용한 로그인을 할 수 있게 도와준다.

 

로그인 성공 이후 --key-file='기존 발급받은 비대칭 키 JSON파일 절대경로'를 넣어 하기와 같이 명령어를 수행한다.

gcloud auth activate-service-account --key-file=/여기가/경로입니까/비밀키입니다.json

별다른 메세지가 뜨지 않으면 성공한 것으로 아래 명령어를 넣어 발급받은 토큰을 출력해준다.

gcloud auth print-access-token

이후 화면에 나오는 토큰을 확인하고 복사를 해놓는다.

 

2) Postman에서 테스트하기

푸시알람 테스트를 하기 위한 경로는 아래와 같다.

https://fcm.googleapis.com/v1/projects/프로젝트명/messages:send

앞뒤는 똑같이 하고 중간 '프로젝트명'에 Firebase 프로젝트 명칭을 넣어주면 된다.

Firebase 콘솔에서 확인하던가 아니면 Json 키 파일 내 'project_id'를 확인하면 된다.

 

Request Header에 아래와 같이 각각 넣어준다.

Key: Content-Type, Value: application/json
Key: Authorization, Value: Bearer googleCli로 발급받은 토큰 (Bearer 뒤 한칸 띄고 토큰 넣어주는 것이 중요!!)

Request Body 예시는 다음과 같다.

{
  "message": {
    "token": "TOKEN", // 푸시알람 대상이 되는 디바이스의 푸시 토큰
    "notification": { // iOS 테스트용 => notification으로 발송
      "title": "푸시알람 타이틀", 
      "body": "푸시알람입니다. 당신은 성공했습니다."
    },
    "data": { // Android 테스트용 => data로 발송
      "key1": "푸시알람 타이틀",
      "key2": "푸시알람입니다. 당신은 성공했습니다."
    }
  }
}

token에는 각 디바이스별로 발급받은 푸시 토큰을 넣어주고 하위 notification, data 값은 OS별로 추리고 넣어서 테스트하면 된다.

 

위 내용을 잘 맞춰서 넣은 뒤 호출을 하고 정상적으로 요청한 경우 { name : .... } 과 같이 리스폰스를 받게 된다.

비정상적으로 요청된 경우 이에 맞춰 Error Response를 받게되니 메세지 리딩 후 수정하면 될 것 같다.

 

끝!

반응형