specific one notification google fcm example default_notification_icon android notifications firebase google-cloud-messaging firebase-cloud-messaging

android - notification - ¿Cómo enviar notificaciones a usuarios específicos con FCM?



push notification fcm android (2)

¿Necesitaba crear un servidor web?

Sí. Necesita un lugar donde pueda asignar un nombre / correo electrónico a las ID de registro. Estas ID de registro deben incluirse en la solicitud a FCM, por ejemplo

{ ''registration_ids'': [''qrgqry34562456'', ''245346236ef''], ''notification'': { ''body'': '''', ''title'': '''' }, ''data'': { } }

enviará el empuje a ''qrgqry34562456'' y ''245346236ef''.

El ID de registro que usa en la llamada es el que se llama ''token'' en esta devolución de llamada en la aplicación.

public class MyService extends FirebaseInstanceIdService { @Override public void onTokenRefresh() { } }

Preparé el receptor para FCM y puedo enviar una notificación a todos los dispositivos.

gcm-http.googleapis.com/gcm/send con este enlace puede enviar a los usuarios objetivo que están registrados y publicar en los dispositivos de destino, como a continuación json:

{ "notification": { "title": "sample Title", "text": "sample text" }, "to" : "[registration id]" }

Sin embargo, debo enviar notificaciones a los usuarios objetivo que elijo, por correo electrónico o nombre ... etc. Por ejemplo:

{ "notification": { "title": "sample Title", "text": "sample text" }, "to" : "[email or name or sex ...]" }

¿Cómo puedo hacer eso? ¿Necesito crear un servidor web o algo más?


Puede enviar un mensaje a otro dispositivo usando este código. No hay necesidad de servidor en este código.

public String send(String to, String body) { try { final String apiKey = "AIzaSyBsY_tfCQjUSWEWuNNwQdC1Vtb0szzz"; 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 message = new JSONObject(); message.put("to", to); message.put("priority", "high"); JSONObject notification = new JSONObject(); // notification.put("title", title); notification.put("body", body); message.put("data", notification); OutputStream os = conn.getOutputStream(); os.write(message.toString().getBytes()); os.flush(); os.close(); int responseCode = conn.getResponseCode(); System.out.println("/nSending ''POST'' request to URL : " + url); System.out.println("Post parameters : " + message.toString()); System.out.println("Response Code : " + responseCode); System.out.println("Response Code : " + conn.getResponseMessage()); 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()); return response.toString(); } catch (Exception e) { e.printStackTrace(); } return "error"; }