[Java] FCM Push 전송하기, json Version

     

     

    Java, FCM Push 전송하기, json Version

     

     

     

     

      Java에서 APK Push 전송하기

     

    import org.json.simple.JSONObject;
    
    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.io.OutputStream;
    import java.net.HttpURLConnection;
    import java.net.URL;
    
    public class FCMessage {
    
        // FCM에서 가입 후 받는 키값
        public final static String AUTH_KEY_FCM = "TOKEN을 보내기 위한 KEY 값, ANDORID ID에 KEY 값이 있다.";
    
        public final static String API_URL_FCM = "https://fcm.googleapis.com/fcm/send";
    
        public static void main(String[] args) throws Exception{
    
            //String token = tokenList.get(count).getDEVICE_ID();
    
            String _title = "앱 알림";
            String _body = "푸쉬메시지가 도착했습니다.";
            String _actionType = "new";
            String _code = "test";
            //String _token = "/topics/ALL"; // 전체
    
            // 모바일기기에서 얻음
            String _token = "APK 다운로드 할 때, 얻게 되는 TOKEN"; // 개인
    
    
            final String apiKey = AUTH_KEY_FCM;
            URL url = new URL("https://fcm.googleapis.com/fcm/send");
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setDoOutput(true);
            conn.setRequestMethod("POST");
            conn.setRequestProperty("Content-Type", "application/json");
            conn.setRequestProperty("Authorization", "key=" + apiKey);
    
            conn.setDoOutput(true);
    
    
            JSONObject json = new JSONObject();
            JSONObject notification = new JSONObject();
    
            notification.put("title", _title);
            notification.put("body", _body);
    
            json.put("notification", notification);
            json.put("to", _token);
    
            String sendMsg = json.toString();
    
            OutputStream os = conn.getOutputStream();
    
            // 서버에서 날려서 한글 깨지는 사람은 아래처럼  UTF-8로 인코딩해서 날려주자
            //os.write(input.getBytes("UTF-8"));
            os.write(sendMsg.getBytes("UTF-8"));
            os.flush();
            os.close();
    
            int responseCode = conn.getResponseCode();
            System.out.println("\nSending 'POST' request to URL : " + url);
            System.out.println("Response Code : " + responseCode);
    
            BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
            String inputLine;
            StringBuffer response = new StringBuffer();
    
            while ((inputLine = in.readLine()) != null) {
                response.append(inputLine);
            }
            in.close();
            // print result
            System.out.println(response.toString());
        }
    }

     환경은 SpringBoot, Java 11 버전을 사용하고 있다.

     

    FCM에 대해서는 설명하기에는 얕은 지식으로 설명하기에는 매우 힘들다...이해할 것 같으면서도 이해 못 한 ...

     

    그래서 Code를 만드는데 좀 시간이 걸린 듯 하다.

     

     

     

    위의 Code는 Push Test를 위해 만들었다.2개의 Key값만 잘 다루면 언제든지 Push를 보낼 수 있는 코드가 된다.

     

     

      라이브러리 사용

    <!-- json object -->
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.12.1</version>
    </dependency>
    <dependency>
        <groupId>com.googlecode.json-simple</groupId>
        <artifactId>json-simple</artifactId>
        <version>1.1.1</version>
    </dependency>

     Json 형태로 담기 위하여, simple.Json이 호출되었다.

    import에서 Json이 불러오는 것을 보아, 아마도 이 라이브러리가 사용 된 것 같아서 추가로 작성하였다.

     

     

    미래의 누군가를 위해서... 대충이라도 글을 남겼다.

    반응형

    'Language > JAVA' 카테고리의 다른 글

    [Java] 상속에 대해 알아보자  (0) 2023.07.08
    [Java] 셀레니움 설치하기  (0) 2022.09.27
    [Java] Cookie 활용하기  (0) 2022.05.10
    [Java] Thread 활용하기  (0) 2022.01.25
    Java, 메모장 파일 만들기  (0) 2021.10.10

    댓글

    Designed by JB FACTORY