Send Push Notification using FCM

In this article, We’ll see how to send push notification to android and ios both using fcm.

Firebase Cloud Messaging (FCM) is a new cloud messaging services to send push notifications to Android, iOS and Web applications. It is the newer version of GCM (google cloud messaging) with more features.




To send notifications, we basically required two things:

  • Authorization key
  • Device Token

We can get Authorization key (API_ACCESS_KEY) available in Firebase Console -> Project Settings -> Cloud Messaging -> Server key, and device token we can get at the time of registering or logging by the android or ios users through API.

Simple steps to register your app under FCM

  • Go to the Firebase console https://console.firebase.google.com (Login using Google account)
  • Create a new project
  • Click on “Add Firebase to your iOS app” Or “Add Firebase to your Android app” button and Register Your App.

To send push notifications, use below PHP script.

Create PushNotifications.php file


class PushNotifications {

private static $URL  = "https://fcm.googleapis.com/fcm/send";  //API URL of FCM

private static $API_ACCESS_KEY = 'AAAApRMIM9I:APA91bHd7N...........Taq'; // YOUR_FIREBASE_API_KEY

public function __construct() {

}

public static function sendPushNotification($token = "", $fields = array())
 {
            $registrationIds = array();
            
            array_push($registrationIds, $token);

            $msg     = array('body' => $fields['body'], 'title'	=> $fields['title']);

            $fields  = array('registration_ids' => $registrationIds, 'notification' => $msg);

            $headers = array('Authorization: key=' . self::$API_ACCESS_KEY, 'Content-Type: application/json');

            #Send Reponse To FireBase Server	
            $ch = curl_init(); 
            curl_setopt($ch,CURLOPT_URL, self::$URL);
            curl_setopt($ch,CURLOPT_POST, true);
            curl_setopt($ch,CURLOPT_HTTPHEADER, $headers);
            curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
            curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false);
            curl_setopt($ch,CURLOPT_POSTFIELDS, json_encode($fields));
            $result = curl_exec($ch);
            curl_close($ch);
            return $result;
 }
 
//include PushNotifications.php file and call sendPushNotification method on your page

require_once 'PushNotifications.php';
$device_token    =  "eIWdeiXnVW4:APA1FMWhLK60.......TdM6IyaYJzdo";
$fields          =  ["title" => "message title", "body" => "message text"];
$response        =  PushNotifications::sendPushNotification($device_token, $fields);
print_r($response);	 

That’s it!. Please share your thoughts or suggestions in the comments below.

Posted in PHP

Leave a Reply

Your email address will not be published. Required fields are marked *