프로그램/Android

안드로이드 FCM 푸시(2.페이로드 및 테스트)

잡식성초보 2019. 1. 3. 11:13

FCM 관련 두번째 시간입니다.


저 또한 FCM 테스트를 하며 많은 삽질을 하였습니다.


안드로이드 페이로드에 관한 부분인데요. 이 페이로드란 Push 데이터 형식, 포맷을


말하는 것입니다.


이 페이로드안에 형태에 따라 백그라운드일때 onMessageReceived에 데이터가 들어올때가 있고


않들어올때가 있습니다. 그 형태가 바로 페이로드에 notification이 있을경우인데요.


이 부분을 잘 유의하여 테스트해야 합니다. 아무것도 모르는 채로 페이로드에 다른곳에서 나와 있는 형태 그대로 


notification을 사용한다면 onMessageReceived가 실행이 되지 않아서 고생 하실것 입니다.


onMessageReceived를 백그라운드와 포그라운드 상태에서 계속 실행되게 할려면 notification을 제거 한뒤


data안에 title이나 약속된 형태로 데이터를 던지면 됩니다.


이 부분을 모르신다면 구글에 onMessageReceived not work라고 계속해서 찾아보겠지요...


그럼 일단 푸시 테스트 하는 방법입니다.


푸시를 테스트를 하기 위해서 PostMan이라는 API 프로그램을 사용하도록 하겠습니다.(다운 경로)


프로그램을 설치하여 실행 한뒤 아래와 같이 페이로드 형식을 만듭니다.


Headers에서 Cotent-Type 은 application/json

Authorization 은 key=서버 키값 을 적어줍니다. 서버 키값은 아래 스크린샷 참조하면 됩니다.





서버키를 넣었을 경우는 아래 스크린샷과 같으면 됩니다.





다음은 Body에 다가 payload 형식을 적어야 합니다.


처음에는 아래와 같이 적어보시길 바랍니다.



{
	"notification": {
    	"title": "안된다고",
    	"body": "안된다는데 왜 난리임."
    },
	"to":"디바이스 토큰",
	"priority":"high",
	"data":{
		"urlLink":"TEST"
	}
}


스크린샷은 아래와 같습니다.


onMessageReceived를 사용하고 싶으시다면 저기서 위의 notification 부분을 다 제거하고 


data안에 데이터를 넣어서 던지면 됩니다.




한뒤 위의 스크린샷과 같이 통신 Type은 Post이며 통신 URL은 


https://fcm.googleapis.com/fcm/send 입니다. Send를 클릭하여 통신이 성공 되었을 경우


아래와 같이 나타날 것 입니다.



반응형