모바일에선 푸시 알림이 필수 기능중에 하나이다.
그리고 푸시 알림을 특정 조건이 이루어지거나 내 커스텀 Admin에서 보내고 싶다면 API 사용은 필수이다.
새 캠페인에서 알림으로 보내는것은 한계가 있다.
고로 API로 만들어야 하는데 구현과정중 기존의 방식에서 HTTP v1 API로 이전됨에 따라 달라졌으므로 헷갈리는 부분을 짚어주고자 한다.
공식문서는 https://firebase.google.com/docs/cloud-messaging/migrate-v1?hl=ko&authuser=0이다.
차근차근 읽어보고 하면 될것 같지만 개인적으로는 문서가 그리 친절하지 않고 A-Z부터 설명되어 있지 않은 느낌이다. 우선 성공 사례부터 보고 시작하자.
먼저 성공한 API 샘플입니다.
여기서 각 값들만 본인의 프로젝트중에 어디서 어떻게 얻어내는지만 알아내면 성공하실것입니다.
1. URL
※ 우선 위의 url에서 Project id는 빨간 동그라미 안에 있는 값이다. myproject-b5ae1에 해당하는 값이다.
2. Authorization Bearer Token
Bearer 토큰을 얻기위한 _get_access_token()에 대한 코드는 구글 git 주소를 참조하면 된다.
https://github.com/firebase/quickstart-python/blob/2c68e7c5020f4dbb072cca4da03dba389fbbe4ec/messaging/messaging.py#L45-L48
위의 코드중에서 _get_access_token() 메서드의 리턴 값이 Bearer token이다.
참고로 이 코드 실행 시킬려면 service-account.json도 필요한데 이거는 프로젝트 설정 -> 서비스 계정에서 키 생성하면 된다.
대략 <project id>-firebase-adminsdk-sao40-8fa84d6ad9.json 이런식으로 생성이 될것이다.
3. Device Token { "message": { "token" : ? } }
특정 device에 알림을 보내기 위한 토큰 값이다.
각각의 device마다 코드가 다를테니 token값을 필요에 맞게 수집하던지해서 사용해야한다.
이 부분에 해당하는건데 이 토큰은 React-native 프로젝트 코드에서 얻어야한다.
이 코드에서 콘솔 로그로 FCM Token: 찍히는 저 값이 Device token이다.
위의 값들을 처음 API 샘플에 잘 대입하여 실행해보면 마침내 API 푸시 알림을 보낼 수 있게 되는것이다.
이번에 FCM API 구현하면서 드래곤볼 찾고 모으느라 힘들었다. 공식문서는 불친절했고 Gemini와 GPT도 최신 업데이트된 방식이라 잘 모르더라.. 하.. 누군가는 이 문서를 보고 참 깨달음을 얻고 HTTP v1 API로 API를 구현할 수 있길 바란다.