¿Cómo enviar una notificación push a más de 1000 usuarios que utilizan firebase en Android?

Estoy recibiendo mensaje de error siguiente al enviar la notificación del empuje a más de 1000 usuarios:

"firebase Número de mensajes a granel (1082) excede el máximo permitido (1000)"

He googled el problema y encontré que FCM puede enviar solamente 1000 mensaje por la petición. Solución: Divida la lista del remitente en php, pero por desgracia soy nuevo en php e incapaz de lograr el bucle.

Mi script php es:

<?php function send_notification ($tokens, $message) { $url = 'https://fcm.googleapis.com/fcm/send'; $fields = array( 'registration_ids' => $tokens, 'data' => $message, 'click_action' => ACTIVITY_CIRCULAR ); $headers = array( 'Authorization:key = <MY_KEY> ', 'Content-Type: application/json' ); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields)); $result = curl_exec($ch); if ($result === FALSE) { die('Curl failed: ' . curl_error($ch)); } curl_close($ch); return $result; } $conn = mysqli_connect("localhost","username","password","databse_name"); $sql = " Select Token From users"; $result = mysqli_query($conn,$sql); $tokens = array(); if(mysqli_num_rows($result) > 0 ){ while ($row = mysqli_fetch_assoc($result)) { $tokens[] = $row["Token"]; } } mysqli_close($conn); $message = array("message" => "Hi This Arbaz Alam And You are using Android App Thanks."); $message_status = send_notification($tokens, $message); echo $message_status; ?> 

¿Puede por favor ayudarme en este sentido y proporcionarme un script push_notification.php que dividirá a los usuarios.

He tratado de dividir el mensaje en trozos de 1000 pero no consigo ningún éxito:

  <?php function send_notification ($tokens, $message) { $url = 'https://fcm.googleapis.com/fcm/send'; $fields = array( 'registration_ids' => $tokens, 'data' => $message ); $headers = array( 'Authorization:key = <MY-KEY>', 'Content-Type: application/json' ); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields)); $result = curl_exec($ch); if ($result === FALSE) { die('Curl failed: ' . curl_error($ch)); } curl_close($ch); return $result; } function send_message($tokens) { $message = array("message" => "AKTU Even Semester Result is updated"); $message_status = send_notification($tokens, $message); echo $message_status; } $conn = mysqli_connect("localhost","username","password","database_name"); $sql = " Select Token From users"; $result = mysqli_query($conn,$sql); $tokens = array(); $num_of_rows = mysqli_num_rows($result); echo "$num_of_rows"; if(mysqli_num_rows($result) > 0 ){ while ($row = mysqli_fetch_assoc($result)) { $tokens[] = $row["Token"]; if(count($tokens) == 1000){ send_message($tokens); $tokens = array(); } } } send_message($tokens); mysqli_close($conn); ?> 

Hola puedes usar array_chunk para enviar la notificación 1000

 if(mysqli_num_rows($result) > 0 ){ while ($row = mysqli_fetch_assoc($result)) { $tokens[] = $row["Token"]; } } mysqli_close($conn); $message = array("message" => "Hi This Arbaz Alam And You are using Android App Thanks."); $regIdChunk=array_chunk($tokens,1000); foreach($tokens as $RegId){ $message_status = send_notification($RegId, $message); } echo $message_status; 

Por favor, cambie esto en su código.

  • Creación de una aplicación de Android para ejecutar PHP y MySQL en Tablet Android
  • ¿Cómo puedo enviar un mensaje a WhatsApp Group y sincronizar contactos con WhatsAPI?
  • Cómo ejecutar phonegap utilizando php?
  • Cómo difundir la referencia a la aplicación de Android
  • Android - skia decoder-> decodificar devuelto falso
  • Subir una imagen de Android a la base de datos MySQL
  • Enviar solicitud de correo utilizando Volley y recibir en PHP
  • Cliente-Servidor-Comunicación con php y android
  • Almacenar una imagen codificada en base64 desde android vía php en mysql
  • ¿Cuál es la mejor manera de enviar una imagen desde un dispositivo Android a un servidor para su procesamiento y enviar los resultados?
  • Arquitectura de la aplicación de consumidor y proveedor de Laravel
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.