Как отправлять FCM Push-уведомления с помощью PHP - PullRequest
2 голосов
/ 25 марта 2019

Я хочу отправить Push-уведомления через FCM с помощью firebase на iOS и Android, но получаю ошибку InvalidRegistration.

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

$url = "https://fcm.googleapis.com/fcm/send";
$notification = array('title' =>$message_title , 'body' => $message_body, 'message_type' => $message_type, 'content_id' => $content_id, 'data' => $content_url);
$arrayToSend = array('registration_ids' => $users_token_list,
'priority' => 'high', 'notification' => array('title' => 'Test', 'body' =>  $message ,'sound'=>'Default','image'=>'Notification Image' ),);
$headers = array('Authorization:key='.$allpush_google_api_key, Content-Type:application/json );
$json = json_encode($arrayToSend);
$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_CUSTOMREQUEST,"POST");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 );
curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
$result = curl_exec($ch);
echo "RESULT : ". $result;
echo $ch;
if ($result === FALSE || $result === 'JSON_PARSING_ERROR') {
  die('Oops! FCM Send Error: ' . curl_error($ch));
}
curl_close($ch);

возврат за

echo "RESULT : ". $result;

это:

{"multicast_id":7490342661176350728,"success":0,"failure":1,"canonical_ids":0,"results":[{"error":"InvalidRegistration"}

и

echo $ch;

Возвращает:

Resource id #1695

Есть идеи, что я делаю не так?

...