FCM Push Notifications: PHP Server Side Integration

A step-by-step guide to implement FCM notifications in back-end PHP application.


3 shares
Firebase Tool Suite

In my last post, I wrote about Android Push Notifications setup using Firebase — a step-by-step guide to implement Firebase Cloud Messaging (FCM) service in Android application. In this post, I’ll discuss server side implementation using PHP to send FCM notification from the app server to the Android device.

FCM Push Notifications: Java Server Side Integration
A step-by-step guide to implement FCM notifications in back-end Java application.

About FCM Server

The server side of FCM consists of two main components:

  • FCM connection servers provided by Google. These servers take messages from an app server and send them to a client app running on a device. Google provides connection servers for HTTP and XMPP.
  • An app server that you must implement in your environment. This app server sends data to a client app via the chosen FCM connection server, using the appropriate XMPP or HTTP protocol.

A full FCM implementation requires both a client implementation and a server implementation to work perfectly.

App Server Implementation in PHP

We can send FCM push notification from our PHP app server to Android users by using Firbase Cloud Messaging HTTP Protocol. It provides following HTTP end-point that can be used to route all notifications requests:

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

Here are some of the important parameters used to send downstream FCM messages.

  • to – Type String – (Optional) [Recipient of the message]
    The value must be a single registration token, notification key, or topic. Do not set this field when sending to multiple topics
  • registration_ids – Type String array – (Optional) [Recipients of the message]
    Multiple registration tokens, min 1 max 1000.
  • priority– Type String – (Optional) [ default normal]
    Allowed values normal and high.Normal priority optimizes the client app’s battery consumption and the app may receive the message with unspecified delay.High priority sends the message immediately, and the app can wake a sleeping device and open a network connection to the server.
  • delay_while_idle – Type boolean – (Optional) [default value false]
    True indicates that the message should not be sent until the device becomes active.
  • time_to_live – Type JSON number – (Optional) [default value 4 week maximum 4 week]
    This parameter specifies how long (in seconds) the message should be kept in FCM storage if the device is offline.
  • data – Type JSON Object
    Specifies the custom key-value pairs of the message’s payload.
    For example, with data: {“from”:”Lhe.io″,”title”:”FCM Notifications”}

For a complete list of targets,options and payloads available to send message from server visit this link.

OK let’s start the actual work, PHP coding to send FCM notification. Here is a code snippet that you can add into your PHP project to route push notification to intended user or a group of users.

<?php 

/* Example Parameter $data = array('from'=>'Lhe.io','title'=>'FCM Push Notifications');
	$target = 'single token id or topic name';
	or
	$target = array('token1','token2','...'); // up to 1000 in one request for group sending
*/
public function sendFCMMessage($data,$target){
   //FCM API end-point
   $url = 'https://fcm.googleapis.com/fcm/send';
   //api_key available in Firebase Console -> Project Settings -> CLOUD MESSAGING -> Server key
   $server_key = 'PASTE_YOUR_SERVER_KEY_HERE';
			
   $fields = array();
   $fields['data'] = $data;
   if(is_array($target)){
	$fields['registration_ids'] = $target;
   }else{
	$fields['to'] = $target;
   }
   //header with content_type api key
   $headers = array(
	'Content-Type:application/json',
        'Authorization:key='.$server_key
   );
   //CURL request to route notification to FCM connection server (provided by Google)			
   $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_RETURNTRANSFER, true);
   curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
   curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
   curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));
   $result = curl_exec($ch);
   if ($result === FALSE) {
	die('Oops! FCM Send Error: ' . curl_error($ch));
   }
   curl_close($ch);
   return $result;
}

You should pass all your custom attributes in data parameter as an array. If you’re sending to single user, pass user id or topic id in target parameter as string. For group notification, pass all user ids as an array in target parameter. Don’t forget to replace PASTE_YOUR_SERVER_KEY_HERE with your actual Secret Server Key that can be found in Firebase Console.

Continue Reading: FCM Push Notifications: Receive Messages in an Andriod App

Need further help? If you’re confused or facing any issue while completing first step, let’s know in comments.

Love What You're Reading?
Subscribe to our top stories
Subscribe
Give it a try, you can unsubscribe anytime.

Like it? Share with your friends!

3 shares
attacomsian

A passionate programmer, domainer, writer and photographer! Love writing about web development, latest trends in technology and domain name industry. Working hard to make the world a better place! Follow me at Twitter @attacomsian or visit my website www.attacomsian.com

18 Comments

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

  1. i am use But when Phone is locked then this notification not ring and show launcher icon doesn’t show those icons that icon i am set in android device
    Please Help me how can i fix this Problem

  2. Если вы приняли решение получить мгновенный займ, вам надо определиться с организацией, где лучше взять займ online. В наши дни не все компании выдают срочные займы. Если вы хотите получить мгновенные займы, вам необходимо просмотреть список организаций, которые предоставляют займы на приемлемых условиях.

    На все-займы-тут.рф размещен каталог МФО, которые выдают мгновенные займы заемщикам. На сайте реально найти разные организации, прочитать отклики и определиться с параметрами займа. Большое количество компаний предоставляют деньги на нормальных условиях. Получить займ вы можете сегодня с паспортом.

    Для того, чтобы человек мог получить микрозайм на карту необходимо выбрать компанию, изучить условия займа. Каждый клиент попадал в положение, когда финансы нужны очень срочно. Близкие люди не всегда могут помочь финансово. По этой причине необходимо изучить шанс взять online займ на карту.

    Если вы стремитесь оформить онлайн займы на банковскую карту срочно , вам нужно выбрать условия. Если вы честный заемщик, финансы будут переведены вам в моментальные сроки. Получить деньги вы можете в рублях на конкретный срок. Нужно выделить, что сервис гарантирует полную конфиденциальность. На сайте собраны МФО, которые всегда идут людям навстречу. Новые лица также не будут ощущать какого-то дискомфорта. Лояльные условия кредитования также доступны для многих людей.

    У вас присутствует вероятность получить микрозаймы быстрее, чем это проходит в банковских учреждениях. Вам не придется собирать что-то из документов. Моментальные займы – уникальный выход, если вам в сжатые сроки нужны средства. Для получения средств следует заполнить анкету на портале МФО. С вами в сжатые сроки свяжется администратор и обсудит все детали.

    Если вы не уверены, где можно найти список лучших МФО, можете смело изучить его на портале. Лучшие микрофинансовые организации есть на портале. У всех сервисов есть техническая поддержка. Получить кредит вы можете на банковскую карту любого банка. Вы можете также получить деньги за 15 минут без лишних вопросов от банковских менеджеров.

    Затем, как ваша заявка будет одобрена, вы получите подтверждение. Более 90% заявок получают одобрение. Оформить кредит можно даже через планшет. Для этого нужно иметь выход в интернет. Также вам потребуется паспорт и банковская карта, куда вы будете получать средства.

  3. Отзывы: Обман Ренессанса И Секвойи О Прощении Части Долга

    ———————————–
    Приведем таблицу основных условий для заемщика. Несовершенство предлагаемого инструмента отметили многие клиенты банка, потому вопросы пересмотра лимита суммы инвестирования и его сроков решаются. Как быть таким смертным? Это очень важно, ведь услуги создаются таким образом, чтобы держатели карт не просто открывали счета, но и активно пользовались ими. На данный момент чаще всего можно встретить сообщения, в которых клиенты выражают недовольство обслуживанием в отделениях учреждения, недоброжелательностью сотрудников. Среди всех заключаемых договоров автострахования оформление электронных полисов на настоящий момент занимает порядка 12,2%. При этом есть ряд регионов, где более половины всех договоров ОСАГО заключается в электронном виде. При этом в банке работает четыре варианта рассмотрения заявки. На сегодняшний день эта организация имеет более 150 собственных филиалов и кредитных офисов. На счетах, которые используются для регистрации состояния и движения источников средств, в Д. После заполнения заявления введите присланный вам ключ электронной подписи (см п.2). После нажатия кнопки «Отправить» вам будет прислан пароль в смс-сообщении, после ввода которого счет за коммунальные услуги будет оплачен. У них есть собственный телефон, причем, не простой, а такой, на который вам звонить можно бесплатно. Часть средств Сбербанк будет возвращать на счет клиента в виде баллов, которые можно потратить у партнеров. Активно-пассивный счет – это счет, применяемый в бухгалтерском учете, на котором одновременно отражаются активы, или имущество предприятия, и пассивы, источники его формирования.

    Перейдите ниже по ссылке, чтобы получить кредит:

    почта банк

  4. Buy Hip-Hop Kit by raspberrymusic on AudioJungle. Easy and positive hip-hop to the background. It sends a pleasant summer atmosphere and easy mood. Great for motivati…

    http://v.ht/zXnx – Show more!

  5. Избавит от грибка всего за 20 дней и не допустит повторного заражения, благодаря комплексу из натуральных масел и лекарственных растений.
    Наш сайт: https://ljvgzmqd.morningeverning.com

DON’T MISS OUT!
Subscribe To Our Newsletter
Be the first to get latest updates and exclusive content straight to your email inbox.
STAY UPDATED
Give it a try, you can unsubscribe anytime.
close-link
Love What You're Reading?
Subscribe to our top stories
Subscribe
Give it a try, you can unsubscribe anytime.
50% Off on all advertisement packages. Limited time only!
ORDER NOW