새 Firebase 서비스로 내 Android 장치에 푸시 알림을 보내려고합니다. 앱을 등록하고 설정했으며, 알림을 수신하는 데 필요한 모든 코드를 Android 앱에 넣었습니다. Firebase Console을 통해 내 앱에 알림을 보내고받을 수 있습니다. 이제 Java 독립형 서버를 작성하여 모든 장치에 알림을 보내려고합니다. 이것은 내 현재 코드 :Firebase Java 서버가 모든 장치에 푸시 알림을 전송합니다.
final String apiKey = "I added my key here";
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);
String input = "{\"notification\" : {\"title\" : \"Test\"}, \"to\":\"test\"}";
OutputStream os = conn.getOutputStream();
os.write(input.getBytes());
os.flush();
os.close();
int responseCode = conn.getResponseCode();
System.out.println("\nSending 'POST' request to URL : " + url);
System.out.println("Post parameters : " + input);
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());
그리고 이것이 내가 그들의 서버에서 다시 얻고 결과 : 간단하게 태그가 나는 작동하지 않습니다 "를"제거, 불행하게도
{"multicast_id":6602141464107786356,"success":0,"failure":1,"canonical_ids":0,"results":[{"error":"InvalidRegistration"}]}
코드 400이 반환되었습니다. 장치를 등록하고 장치 ID를 서버에 보내고 저장 한 다음 서버에 등록 된 모든 장치를 루프하여 메시지를 보내야한다고 읽었습니다. 콘솔과 마찬가지로 모든 장치에 메시지를 보내는 더 쉬운 방법은 없습니까?
당신의 도움이 정말려고 되었기 때문에이 하루 종일 일을, 감사 길이 = (
감사합니다, 더스틴
나는이 가능하다 생각하지 않는다
그래, 나는 이런 식으로 생각했다.하지만 앱 자체에 등록 코드를 쓰고 싶지는 않다 ... 그게 어떻게 든 가능하다면 어떤 생각이 들겠 니? – user3907491
앱에 등록 코드가 있다는 것은 무엇을 의미합니까? 사용자가 앱을 시작하면 자동으로 주제에 등록 할 수 있습니다. Android에서는, 'FirebaseMessaging.getInstance(). subscribeToTopic ("allDevices");'이것을 onCreate 메소드에 넣으면 앱이 시작될 때 자동으로 등록됩니다. –
대단히 감사합니다. 그게 바로 제가 찾고있는 것입니다 =) 어떻게 답을 가장 좋은 것으로 표시 할 수 있습니까? 이미 +1했습니다. – user3907491