notification from php android push-notification yii2 firebase-cloud-messaging

from - send notification to firebase using php



Problema de notificación de envío de FCM:-"error": "No registrado" (1)

No sé mucho sobre php, pero recientemente me he enfrentado al mismo problema en otro proyecto y lo he resuelto de esta manera:

Refiéralo primero: ¿Dónde puedo encontrar la clave de API para Firebase Cloud Messaging?

y obtenga la clave API actualizada como se muestra en la captura de abajo

Estoy recibiendo el extraño problema de enviar notificaciones push a Android usando FCM.

Objetivo: - Tener un error al enviar una notificación de inserción

A continuación se muestra el escenario que tengo función para enviar notificaciones push a Android

public static function SendMultipleNotificationAndroid($groups) { //your api key SERVER API KEY $apiKey = Yii::$app->params[''android_api_key'']; $url = ''https://fcm.googleapis.com/fcm/send''; $headers = array( ''Authorization:key='' . $apiKey, ''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_SSL_VERIFYPEER, false); foreach($groups as $resG){ $users = $resG[''users'']; $msg = $resG[''message'']; $type = $resG[''notification_type'']; $notification_data = $resG[''notification_data'']; $deviceTokens = []; foreach($users as $resUser){ $deviceTokens[] = $resUser[''device_token'']; //Add Friend badge count +1 Common::AddRemoveBadgeCount($resUser[''user_id'']); } if(!empty($deviceTokens)){ $fields = array( ''registration_ids'' => $deviceTokens, ''priority'' => ''high'', ''collapse_key'' => $resG[''notification_type''], ''time_to_live'' => 2419200, "click_action" =>"NotificationListingActivity", ''data'' => [ "title" => "ProjectName", "body" => $resG[''message''], "action_tag" => $resG[''notification_type''], "message" => $resG[''message''], ''notification_type'' => $type, ''notification_data'' => $notification_data, ''sound'' => ''default'', ] ); //Print result p($ch,0); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields)); curl_exec($ch); } } curl_close($ch); }

Entonces, el problema es cuando envío notificaciones únicas, funciona bien, pero cuando envío notificaciones múltiples, recibo un error cada vez

<pre>Resource id #5</pre>{"multicast_id":4818908994630396118,"success":1,"failure":1,"canonical_ids":0,"results":[{"error":"NotRegistered"},{"message_id":"0:1487136045570022%c3bae3c6002e9358"}]} <pre>Resource id #5</pre>{"multicast_id":5218359780835228544,"success":1,"failure":1,"canonical_ids":0,"results":[{"error":"NotRegistered"},{"message_id":"0:1487136046618669%c3bae3c6002e9358"}]}

A medida que depuramos el código, tenemos un token de dispositivo en nuestra base de datos sin firewall que deja de enviar notificaciones push.

Cada vez que llamo a la función anterior, recibí

"error": "No registrado"

Cualquier ayuda sería apreciada.

Gracias por adelantado.