[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