-
curl 로 firebase 메시지 보내기카테고리 없음 2018. 3. 8. 14:33728x90
공홈에도 잘 나와 있긴한데 편하게 가져다 쓰기 위해 정리해둔다.
테스트 Push 메시지용 배치파일 만들기
이 Section은 Push 테스트를 하기 위해 푸시 메시지를 계속 단말기에 보낼때 테스트 환경에서 사용하길 권장한다.
또한 이러한 테스트는 라이브 서비스중인 환경에서는 사용자들에게 푸시가 전송 될 수 있기 때문에 각별한 주의가 필요하다.
fcm_test.bat
curl -X POST -H "Content-Type:application/json" -H "Authorization:key= 여기에 FCM 서버키를 넣음" -k "https://fcm.googleapis.com/fcm/send" --data "@fcm_test.json"
위와 같이하려면 따로 fcm_test.json 이라는 파일이 추가로 필요하다.
이렇게 하는 이유는 console 에서 직접 보낼때 한글이 깨지기 때문!
fcm_test.json
{ "to" : "여기에 fcm 키나(단일대상) /topics/구독주제 를 넣는다", "priority" : "high", "notification" : { "body" : "내용", "title" : "제목", "여기에 추가적인 키를 넣을 수도 있음":"값" }, }
구글 공식홈에 나와있는 예제에 따옴표가 빠져있다. 잘 못보면 삽질주의!
언제 고쳐질지 모르지만 현재(2018.3.8)에는 "to" 보낼때 뒤에 " 가 앞에 하나 빠져있다. -_-;
위와 같이 보내면
iOS
- background 일경우 푸시 메시지를 받음
- foreground 일 경우 -(void)application:didReceiveRemoteNotification 이 호출된다
- 위 fcm_test.json 예제에서 추가키를 넣으면(void)application:didReceiveRemoteNotification 함수인자로 userInfo 라는 인NSDictionary 가 하나오는데 여기에 키로 "gcm.notification.추가키" 라는 것으로 검색하면 해당 키의 값을 얻을 수 있다.
const char* value = [[userInfo objectForKey:@"gcm.notification.키이름"] UTF8String]
Android 는 data 푸시 기능이 있으므로 무적
Push의 종류
- notification 푸시 : Firebase Console 이나, 위 예제처럼 "notification" 키를 기반으로 보내는것. 기본적인 기능을 하는 푸시가 구현됨, iOS, Android 기본 지원
- data 푸시 : "data" 키를 기반으로 보냄. Android 에서 지원 iOS 는 아니 10 부터 지원되는 듯
728x90