FCM (Firebase Cloud Messaging) Отправить на несколько устройств

Я выполняю этот код для отправки уведомлений на мобильное устройство с использованием библиотеки FCM

public string PushFCMNotification(string deviceId, string message) { string SERVER_API_KEY = "xxxxxxxxxxxxxxxxxxxxxxx"; var SENDER_ID = "xxxxxxxxx"; var value = message; WebRequest tRequest; tRequest = WebRequest.Create("https://fcm.googleapis.com/fcm/send"); tRequest.Method = "post"; tRequest.ContentType = "application/json"; tRequest.Headers.Add(string.Format("Authorization: key={0}", SERVER_API_KEY)); tRequest.Headers.Add(string.Format("Sender: id={0}", SENDER_ID)); var data = new { to = deviceId, notification = new { body = "This is the message", title = "This is the title", icon = "myicon" } }; var serializer = new JavaScriptSerializer(); var json = serializer.Serialize(data); Byte[] byteArray = Encoding.UTF8.GetBytes(json); tRequest.ContentLength = byteArray.Length; Stream dataStream = tRequest.GetRequestStream(); dataStream.Write(byteArray, 0, byteArray.Length); dataStream.Close(); WebResponse tResponse = tRequest.GetResponse(); dataStream = tResponse.GetResponseStream(); StreamReader tReader = new StreamReader(dataStream); String sResponseFromServer = tReader.ReadToEnd(); tReader.Close(); dataStream.Close(); tResponse.Close(); return sResponseFromServer; } 

теперь, как отправить сообщение на многоуровневое устройство, предположим, что параметр string deviceId заменен на ListIDID List.

вы можете помочь

3 Solutions collect form web for “FCM (Firebase Cloud Messaging) Отправить на несколько устройств”

Обновление: для v1 кажется, что registration_ids больше не поддерживается. Настоятельно рекомендуется использовать темы. Для v1 поддерживаются только параметры, показанные в документации .


Просто используйте параметр registration_ids, а не в своей полезной нагрузке. В зависимости от вашего варианта использования вы можете использовать либо текстовые сообщения, либо сообщения группы устройств .

Обмен сообщениями

Служба обмена сообщениями Firebase Cloud Messaging (FCM) позволяет отправлять сообщения нескольким устройствам, которые выбрали конкретную тему . На основе модели публикации / подписания тема обмена сообщениями поддерживает неограниченное количество подписчиков для каждого приложения. Вы составляете сообщения темы по мере необходимости, а Firebase обрабатывает маршрутизацию сообщений и надежно передает сообщение соответствующим устройствам.

Например, пользователи локального приложения outlookирования погоды могут выбрать тему «суровых погодных предупреждений» и получать уведомления о штормах, угрожающих указанным областям. Пользователи спортивного приложения могут подписаться на автоматические обновления в живых играх для своих любимых команд. Разработчики могут выбрать любое название темы, которое соответствует регулярному выражению: "/topics/[a-zA-Z0-9-_.~%]+" .


Сообщения группы устройств

При обмене сообщениями группы устройств серверы приложений могут отправлять одно сообщение нескольким экземплярам приложения, работающего на устройствах, принадлежащих к группе. Как правило, «группа» относится к набору различных устройств, принадлежащих одному пользователю . Все устройства в группе имеют общий ключ уведомления, который является маркером, который использует FCM для рассылки сообщений всем устройствам в группе.

Обмен сообщениями групп устройств позволяет каждому экземпляру приложения в группе отражать последнее состояние обмена сообщениями. В дополнение к отправке сообщений вниз по течению к ключу уведомлений вы можете разрешать устройствам отправлять восходящие сообщения в группу устройств. Вы можете использовать обмен группами устройств с сервером соединений XMPP или HTTP. Предел полезной нагрузки данных составляет 2 КБ при отправке на устройства iOS и 4 КБ для других платформ.

Максимальное количество членов, разрешенных для notification_key равно 20.


Для получения дополнительной информации вы можете проверить отправку на несколько устройств в документах FCM .

Вы должны создать тему и позволить пользователям подписаться на эту тему. Таким образом, когда вы отправляете сообщение FCM, каждый пользователь, подписавшийся на него, получает его, за исключением того, что вы действительно хотите сохранить запись своих идентификаторов для особых целей.

 FirebaseMessaging.getInstance().subscribeToTopic("news"); 

См. Эту ссылку: https://firebase.google.com/docs/cloud-messaging/android/topic-messaging

 https://fcm.googleapis.com/fcm/send Content-Type:application/json Authorization:key=AIzaSyZ-1u...0GBYzPu7Udno5aA { "to": "/topics/news", "data": { "message": "This is a Firebase Cloud Messaging Topic Message!", } } 

Пожалуйста, выполните следующие действия.

 public String addNotificationKey( String senderId, String userEmail, String registrationId, String idToken) throws IOException, JSONException { URL url = new URL("https://android.googleapis.com/gcm/googlenotification"); HttpURLConnection con = (HttpURLConnection) url.openConnection(); con.setDoOutput(true); // HTTP request header con.setRequestProperty("project_id", senderId); con.setRequestProperty("Content-Type", "application/json"); con.setRequestProperty("Accept", "application/json"); con.setRequestMethod("POST"); con.connect(); // HTTP request JSONObject data = new JSONObject(); data.put("operation", "add"); data.put("notification_key_name", userEmail); data.put("registration_ids", new JSONArray(Arrays.asList(registrationId))); data.put("id_token", idToken); OutputStream os = con.getOutputStream(); os.write(data.toString().getBytes("UTF-8")); os.close(); // Read the response into a string InputStream is = con.getInputStream(); String responseString = new Scanner(is, "UTF-8").useDelimiter("\\A").next(); is.close(); // Parse the JSON string and return the notification key JSONObject response = new JSONObject(responseString); return response.getString("notification_key"); 

}

Надеюсь, приведенный выше код поможет вам отправить push на несколько устройств. Подробнее см. Ссылку https://firebase.google.com/docs/cloud-messaging/android/device-group

*** Примечание. Пожалуйста, прочтите ссылку на создание / удаление группы по вышеуказанной ссылке.

  • Открытое приложение для получения уведомлений о пожарной базе (FCM)
  • Как отправить сообщение устройства на устройство с помощью Firebase Cloud Messaging?
  • Firebase onMessageReceived не вызывается, когда приложение в фоновом режиме
  • API-ключ для GCM неожиданно недействителен? Несанкционированная ошибка (401)
  • Отправить push на Android с помощью C # с помощью FCM (Firebase Cloud Messaging)
  • Отправлять push-уведомления с сервера с помощью FCM
  • Firebase (FCM): открывать активность и передавать данные по уведомлению. андроид
  • Управление группами устройств FCM
  • FirebaseInstanceIdService устарел
  • Interesting Posts

    Выбирая n чисел с фиксированной суммой

    Как получить std :: векторный указатель на необработанные данные?

    Создание размытого прозрачного фонового эффекта

    2 идентичных ПК. Могу ли я поменять один жесткий диск между ними и ожидать, что Windows 7 / XP будет работать?

    Как я могу избавиться от помощника клипа Microsoft «Clippy»?

    Печать списков с запятыми C ++

    Одна жесткая ссылка заблокирована. Как удалить другую?

    Android Studio отмечает R красным цветом с сообщением об ошибке «не удается разрешить символ R», но assembly завершается успешно

    Сканеры Google интерпретируют Javascript? Что делать, если я загружаю страницу через AJAX?

    Как использовать эффект медленного движения в определенный интервал времени с помощью ffmpeg

    Windows Vista, не удалось загрузить в безопасном режиме или загрузить предыдущий вход в стандартных условиях. HP Pavillion DV6000

    Почему подключенный раздел NTFS не отображается в файловом менеджере Linux?

    Установка цвета страницы без цвета при отправке или ответе в Outlook 2010

    Как перенаправить определенные приложения через VPN и другие, чтобы использовать мое «стандартное» соединение в OSX 10.6?

    Формула Excel отображает формулу, а не результат

    Давайте будем гением компьютера.