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.