java 에서 fcm 다중 전송을 구현하고있습니다.
이전에 1명에게만 푸시 전송되있는 것을
다중 전송으로 변경하고 있습니다.
매개 변수를 'to' 에서
'registration_ids' 으로 변경하고
value 값도
jsonArray으로 배열에 넣고 실행을 하면...
400 에러가 발생합니다.
아래는 코드중 일부입니다
JsonParser parser = new JsonParser();
JsonArray jsonArr = (JsonArray) parser.parse(vo.getResult());
JsonArray tokenArr = new JsonArray();
for(int i = 0; i < jsonArr.size(); i++) {
JsonObject obj = (JsonObject) jsonArr.get(i);
String usrNm = obj.get("usrNm").getAsString();
String usrHpToken = obj.get("usrHpToken").getAsString();
tokenArr.add(usrHpToken);
}
// vo에 토큰이 있다면 해당 토큰에게만 푸시 전송
String token = "";
if(vo.getUsrHpToken() != null && !vo.getUsrHpToken().isEmpty()) {
token = vo.getUsrHpToken();
} else {
token = "all";
}
JSONObject notiObj = new JSONObject();
notiObj.put("title", vo.getNtcTit());
notiObj.put("body", vo.getNtcCont());
JSONObject dataObj = new JSONObject();
dataObj.put("type", vo.getType());
JSONObject pushObj = new JSONObject();
pushObj.put("notification", notiObj);
pushObj.put("data", dataObj);
// pushObj.put("to", token);
pushObj.put("registration_ids", tokenArr);
//OutputStream os = conn.getOutputStream();
OutputStreamWriter Output = new OutputStreamWriter(conn.getOutputStream(), "UTF-8");
// 서버에서 날려서 한글 깨지는 사람은 아래처럼 UTF-8로 인코딩해서 날려주자
Output.write(pushObj.toString());
Output.flush();이렇게 registration_ids 으로 바꾸고
tokenArr 라는 변수에 토큰을 배열로 넣어 했습니다만..
어떤 부분이 틀린건지 피드백좀 부탁드립니다..
0
0
댓글을 쓰려면 로그인이 필요합니다.