Как реализовать облачную службу обмена firebase на стороне сервера?

После перехода на Firebase, я протестировал отправку уведомлений с помощью консоли firebase, он отлично работает, но мне нужно ежедневное уведомление в определенное время, поэтому вместо использования консоли firebase я использую свое прежнее задание cron для ежедневного отправки уведомлений. Я изменил https://android.googleapis.com/gcm/send на https://fcm.googleapis.com/fcm/send но мое устройство не получает никаких уведомлений.

Есть ли способ решить это? Или я ничего не пропустил? Мое задание cron отлично работает для моих устройств, которые все еще используют GCM.

Вот мой код

 function sendNotificationFCM($apiKey, $registrationIDs, $messageText,$id) { $headers = array( 'Content-Type:application/json', 'Authorization:key=' . $apiKey ); $message = array( 'registration_ids' => $registrationIDs, 'data' => array( "message" => $messageText, "id" => $id, ), ); $ch = curl_init(); curl_setopt_array($ch, array( CURLOPT_URL => 'https://fcm.googleapis.com/fcm/send', CURLOPT_HTTPHEADER => $headers, CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_POSTFIELDS => json_encode($message) )); $response = curl_exec($ch); curl_close($ch); return $response; 

}

Я добавил объект notification в свой json. Я узнал, что в моем remoteMessage.getNotification().getBody() возвращает null, поэтому он не получает никакого уведомления, отправленного моим cron.

редактировать

Вот мой json-объект

 $message = array( 'registration_ids' => $registrationIDs, 'notification' => array( "title" => $id, "body" => $messageText, "icon" => "name_of_icon" ), 'data' => array( "message" => $messageText, "id" => $id, ), ); 

Помимо изменения URL-адреса на следующий:

 https://fcm.googleapis.com/fcm/send 

Вы также должны изменить способ отправки данных запроса:

  Content-Type:application/json Authorization:key=AIzaSyZ-1u...0GBYzPu7Udno5aA { "to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...", // "to" replaces "registration_ids" of gcm in fcm "data" : { ... }, } 

Ознакомьтесь с полным руководством .

Попробуйте использовать это 🙂

Клиент Python для FCM