Firebase Java Server para enviar notificaciones push a todos los dispositivos

Estoy tratando de enviar una notificación Push a mi dispositivo Android con el nuevo servicio Firebase. Me registré y configuré una aplicación, también puse todo el código necesario para recibir notificaciones en la aplicación de Android. A través de la consola Firebase puedo enviar una notificación a mi aplicación y se recibe y se muestra. Ahora quiero escribir un servidor independiente de Java, para enviar una notificación a TODOS los dispositivos. Este es mi código actual:

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());

Y este es el resultado que estoy volviendo de sus servidores:

{"multicast_id":6602141464107786356,"success":0,"failure":1,"canonical_ids":0,"results":[{"error":"InvalidRegistration"}]}

Desafortunadamente, simplemente eliminar la etiqueta "a" no funciona, obtengo un código 400 devuelto entonces. Leí que necesito registrar el dispositivo, enviar la identificación del dispositivo al servidor y guardarlo allí y luego recorrer todos los dispositivos registrados en el servidor para enviar el mensaje. ¿No hay una manera más fácil de enviar un mensaje a todos los dispositivos, como en la consola?

Su ayuda es muy apreciada, ya que he estado tratando de hacer que esto funcione todo el día = (

Saludos, Dustin

Respuestas a la pregunta(10)

Su respuesta a la pregunta