[iOS] FCM HTTP v1 포스트맨으로 테스트하기

Jee.e (황지희)·2025년 2월 25일

최근에 Push Noti 기능을 추가하기위해, FCM을 구현하게 되었습니다 !
기능 구현 후, 포스트맨으로 테스트 하면서 겪었던 삽질을 기록해보겠읍니다.

FCM을 포스트맨으로 테스트하는 방법을 찾아보면 기존의 FCM API를 사용하는 방법이 많이 나옵니다.
하지만 .. ! 2024년 7월 해당 방법은 deprecated 되었고, 이후로는 HTTP v1을 사용해 테스트해야합니다.

참고 - 파이어베이스 공식 문서
기존 FCM API에서 HTTP v1로 이전

HTTP v1을 활용한 테스트 방법을 제가 못 찾은건지 .. 꽤나 삽질을 했기에
비슷한 상황을 겪는 누구에게라도 도움이 되면 좋겠네요 🫠

그럼 테스트 방법에 대한 포스팅을 시작하겠습니당 !

프로젝트와 콘솔 및 AppDelegate에서 모든 기능 구현을 다 마친,
테스트만 남은 상태로 가정하고 포스팅합니다.


먼저 우리가 테스트를 위해 사용할 API는 다음과 같습니다.

푸시 테스트 API (v1)

  • URL: https://fcm.googleapis.com/v1/projects/{PROJECT-ID}/messages:send
  • Method: POST

Project ID 확인

API를 정상적으로 사용하기 위해서는 path에 PROJECT-ID 를 넣어줘야합니다.

그래서 가장 먼저 Project ID를 확인해야하는데,
아래와 같은 경로로 접근하면 내 프로젝트의 ID를 확인할 수 있습니다.

Firebase Consol → 해당 프로젝트 선택좌측 상단 프로젝트 개요 옆 톱니바퀴 아이콘(설정) 클릭 → 프로젝트 설정일반 탭의 ‘내 프로젝트’ 에서 ‘프로젝트 ID’ 확인 가능 !


Header 설정

API를 잘 설정했다면, 다음으로 헤더에 아래 두가지를 담아야합니다.

{
  "Content-Type": "application/json",
  "Authorization": "Bearer {ACCESS_TOKEN}"
}

그리고 여기서부터 대삽질시대 시작..

저 AccessToken은 어떻게 발급받는것인가...
찾아보니 다양한 방법이 나왔고, 최종적으로 아래 두 방법을 시도해보았읍니다.

  1. Firebase 콘솔에서 서비스 계정 키 발급 후 다운받은 json으로
    Google Cloud SDK 설치 후 gcloud 사용하여 토큰 발급
  2. cURL Post 요청으로 토큰 발급

그런데 말입죠 ..
제가 잘 못 설정한건지 토큰이 정상적으로 발급되지 않았습니다..

계속 삽질하면서 분명 내가 아직 모르는 더 간단한 방법이 있을것이란 생각이 들었읍니다.
테스트도 아니고 테스트설정에 많은 시간을 쏟으면 안되지않나..?

저는 한 문제에 너무 많은 시간이 소요되었다 판단되면 주변에 바로 물어보는 편입니다.
질문으로 시간을 살 수 있기때문이죠..! (전제조건 : 충분한 시도)

안드로이드 동료에게 물어봤고, 역시 그녀는 천재라 더 간단한 방법을 알려주었습니다 .. !

그녀에게 받은 귀한 자료 ..
https://velog.io/@thwjd9393/Android-FCM-%EC%A0%84%EC%86%A1-%ED%85%8C%EC%8A%A4%ED%8A%B8with-Postman

저는 해당 포스팅을 참고해 Google Developers - OAuth 2.0 Playground로 토큰을 발급받기로 했습니다.


Google Developers OAuth 2.0 Playground로 Access Token 발급받기

아래의 순서대로 진행하면 발급이 되며, 지금부터 편의상 음슴체로..

  1. https://developers.google.com/oauthplayground 접속

  2. 좌측 API List를 쭉쭉 아래로 내린 후,
    Firebase Cloud Messaging API v1 토글 버튼 클릭!

  3. 그럼 아래와 같이 2개의 API가 나오는데, 테스트 해본 결과 어떤 것을 사용해도 무방함

    https://www.googleapis.com/auth/cloud-platform
     https://www.googleapis.com/auth/firebase.messaging
  • 다만 /cloud-platform 이 Firestore, Cloud Storage 등 더 광범위한 권한을 갖게되므로,
    FCM만 테스트할것이라면 firebase.messaging 만 쓰는게 보안상 더 좋음
  1. API를 선택했다면 아래 이미지와 같이뜰텐데,
    화면에서 보이는 파란색버튼 Authorize APIs 클릭!

  2. 이후 사용할 Google 계정을 선택하고, 계정 액세스를 허용하면 아래와 같은 창이 뜸!

    이때 토큰은 보이지 않는데, 당황하지말고 좌측의
    Exchange authorization code for tokens 버튼을 눌러주면

  3. 반가운 200 OK 가 뜨고, 그 아래 Access Token과 Refresh Token이 잘 생성된 것을 확인할 수 있음

  1. 그럼 여기의 Access Token을 복사해 Postman으로 이동

  2. API를 설정하고 Authorization 탭을 선택하면, 이미지와 같이 Firebase Cloud Messaging API 가 보임

  3. Auth Type을 Bearer Token 으로 설정 후, 위에서 복사한 Access Token을 입력
    (여기서 토큰을 설정해뒀으니, 헤더에는 Content-Type : application/json 만 넣으면 됨)

  4. 마지막으로 Body를 설정해주면 !

    (나는 아래와 같이 설정)

    {
      "message": {
        "token": "{앱에서 수신한 FCM 토큰}",
        "notification": {
          "title": "푸시테스트 얍얍",
          "body": "테스트테스트"
        },
        "apns": {
          "payload": {
            "aps": {
              "category" : "NEW_MESSAGE_CATEGORY"
            }
          }
        }
      }
    }
  5. 짠 ! 아래와 같이 푸시 테스트 대성공 ~~!~!


근데 대발견… ! 포스팅하면서 다시 테스트 하던 중, 위보다 더 간단한 방법을 찾아버렸어요..^^


Postman으로 AccessToken 발급받기

Postman에 API를 설정하고, Authorization 탭을 누르면 Firebase Cloud Messaging API 가 떴었죠..?

가만보니.. Authorize to generate token 이 있는거 아니겠읍니까..^^

Authorize를 눌러보니.. Google 계정 선택계정 액세스를 허용 팝업이..

허용을 눌러주면..

발급 완료..ㅎ
…? 뭐야..? 발급 된거야..? 이렇게 쉽게…? 라는 생각하면서
다시 포스트맨으로 돌아오면 이렇게 Token값이 채워져있는것을 확인할 수..

다시 바디와 헤더를 채우고 요청을 보내면 .. 푸시 알림이 정상적으로 동작하는 것을 확인할 수 있읍니다..ㅎㅎ..

바보같은 삽질로 많은 시간을 소비했지만 삽질로도 성장하는 주니어 개발자니까 위안을 삼으며..
누군가는 저와 같은 삽질을 하지 않길 바라는 마음으로 작성한 오늘의 포스팅을 끝마치겠습니다 !


틀린 사항이 있다면 언제든 말씀 부탁드립니당 ~!
긴 글 읽어주셔서 감사합니다 ~~!

profile
교훈없는 경험은 없다고 생각하는 2년차 iOS 개발자입니다.

1개의 댓글

comment-user-thumbnail
2025년 6월 19일

https://testfcm.com/

지이 요것도 좋아요!

답글 달기