[Java] FCM Push 전송하기, json Version
- Language/JAVA
- 2022. 5. 12.
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 |