Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
firebase notification sample in php . if you like this code follow me and star it . i will follow you and use your codes and share them . Simple PHP FireBase (FCM) script showing how to send an Android push notification. Be sure to replace the SERVER_API_ACCESS_KEY with a proper one from the Google API's Console page. To use the script, just call
<?php
#API access key from Google API's Console
define( 'API_ACCESS_KEY', 'YOUR-SERVER-API-ACCESS-KEY-GOES-HERE' );
$registrationIds = $_GET['id'];
#prep the bundle
$msg = array
(
'body' => 'Body Of Notification',
'title' => 'Title Of Notification',
'icon' => 'myicon',/*Default Icon*/
'sound' => 'mySound'/*Default sound*/
);
$fields = array
(
'to' => $registrationIds,
'notification' => $msg
);
$headers = array
(
'Authorization: key=' . API_ACCESS_KEY,
'Content-Type: application/json'
);
#Send Reponse To FireBase Server
$ch = curl_init();
curl_setopt( $ch,CURLOPT_URL, 'https://fcm.googleapis.com/fcm/send' );
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 );
#Echo Result Of FireBase Server
echo $result;
@domixr
Copy link

domixr commented Jun 20, 2018

Great code, it worked for me but only a clarification for the guys that will use it: use as API_ACCESS_KEY the server key that is possible to find, from the Firebase console, in project overview -> setting's project -> cloud messaging.

@hrsetyono
Copy link

hrsetyono commented Jun 29, 2018

Anyone know how to get the Registration ID for web? I successfully generate this token:

{
  "endpoint":"https://fcm.googleapis.com/fcm/send/1111111:2222222222222222",
  "expirationTime":null,
  "keys":{"p256dh":"aaaaaaaaaaaa","auth":"bbbbbbbbbbbb"}
}

Is it correct that the 11111:2222222 is the Registration ID? I still get MismatchSenderID error just like the people above.

I tried other value but it gives me InvalidRegistration error.

@kamal-nyaupane
Copy link

kamal-nyaupane commented Jul 9, 2018

i m getting this message :-
{"multicast_id":7145009148233962961,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"0:1531121690342192%0000000000000000"}]}
but i m not getting notification on server neither any other message please help me.

@yickmo
Copy link

yickmo commented Jul 12, 2018

@kamal-nyaupane

If you are talking about Android, then I think we have the same issue. Go to Settings -> Developer Options and look for "Show notification channel warnings". I think this option is only available on Android 8. Enable it and test it again. If you see something like "failed to post notification on channel 'null', then you do have the same issue as what I have.

Android 8 have this new feature for notification which can be assigned to a channel ID.

I Google this for the entire day and tried several recommendation, but unfortunately I am still trying to find the solution to this.

@arshad115
Copy link

arshad115 commented Jul 19, 2018

New api uses this format:
https://fcm.googleapis.com/v1/projects/myproject-b5ae1/messages:send
You have to include project name and version of api.

Also there are changes to auth and payload. More info here: https://firebase.google.com/docs/cloud-messaging/migrate-v1

@ark2018
Copy link

ark2018 commented Jul 27, 2018

{"multicast_id":8910091881405662450,"success":0,"failure":1,"canonical_ids":0,"results":[{"error":"MismatchSenderId"}]}
Please help

@MohammadaliMirhamed
Copy link
Author

MohammadaliMirhamed commented Aug 5, 2018

Im so glad guys this code is helping you . Thank you so much

@MohammadaliMirhamed
Copy link
Author

MohammadaliMirhamed commented Aug 5, 2018

@ark2018 check your api code

@JayeshBreezeway
Copy link

JayeshBreezeway commented Aug 7, 2018

how to redirect www.google.com in notification click.

@deepak-gehlot
Copy link

deepak-gehlot commented Aug 23, 2018

can you explain this code .

Copy link

ghost commented Aug 23, 2018

@deepak-gehlot
Hi friend. Which part do you want to i explaine for you?

@bastimm
Copy link

bastimm commented Aug 27, 2018

THANKS! works well! But:
Would be nice if somebody could explain what changes are needed for the new v1 mentioned by @arshad115

@pasupathinathan
Copy link

pasupathinathan commented Sep 25, 2018

Hi friend,
Your code is working successfully, I got a registrationId, But how to store this value in another variable... pls help me... what can i do?

@PMistry123
Copy link

PMistry123 commented Sep 25, 2018

I have used the same script for GCM, what should I do to get new keys for my android app for fcm with this php script

Also, my app has added gcm.senderid, do I need to change this as well?

Copy link

ghost commented Sep 25, 2018

dear @pasupathinathan hi.
Ask you question more clear.

Copy link

ghost commented Sep 25, 2018

@PanktiPancholi88 hi dear. I thank if you want get the key. You shall go to google fcm key part

@jiyaan
Copy link

jiyaan commented Jan 6, 2019

please help me to resolve this problem for fcm push notification using php
{
"multicast_id": 8064599321131175636,
"success": 0,
"failure": 1,
"canonical_ids": 0,
"results": [
{
"error": "MismatchSenderId"
}
]
}

@mosesyashua
Copy link

mosesyashua commented Mar 30, 2019

Thank you.

@mosesyashua
Copy link

mosesyashua commented Mar 30, 2019

After trying all sorts of complicated plugins that required complicated installations and giving me so much errors and without success, I am amazed that this simple script works. Wow! Thank you.

@mountainclimbing
Copy link

mountainclimbing commented May 16, 2019

Hello team,

Any examples for cordova/phonegap? Been looking around for an example on how to setup the index.html to receive notifications but no luck

@MohammadaliMirhamed
Copy link
Author

MohammadaliMirhamed commented Jul 12, 2019

Hello team,

Any examples for cordova/phonegap? Been looking around for an example on how to setup the index.html to receive notifications but no luck

hi dear. yes, there is a way. make a route with the top script and in your web application then send the request by your Cordova/PhoneGap?

@MohammadaliMirhamed
Copy link
Author

MohammadaliMirhamed commented Jul 12, 2019

Thank you.

Your welcome

@MohammadaliMirhamed
Copy link
Author

MohammadaliMirhamed commented Jul 12, 2019

please help me to resolve this problem for fcm push notification using php
{
"multicast_id": 8064599321131175636,
"success": 0,
"failure": 1,
"canonical_ids": 0,
"results": [
{
"error": "MismatchSenderId"
}
]
}

its simple brother. you just need to define your application and then get the token and put it there. it will work well.

@rhafiko
Copy link

rhafiko commented Sep 11, 2019

I created a fork available here

What's the difference from the original script ?
-You can send message to a specific device by informing a device ID to the parameter 'id'
-or send a broadcast to a specific topic to the parameter 'topic'.
-it is necessary to set a specific topic previously on your Firebase Console and
also the device must subscribe to it.
-You will also receive a error message if you do not pass any value to those two needed parameters.

@rhafiko
Copy link

rhafiko commented Sep 11, 2019

please help me to resolve this problem for fcm push notification using php
{
"multicast_id": 8064599321131175636,
"success": 0,
"failure": 1,
"canonical_ids": 0,
"results": [
{
"error": "MismatchSenderId"
}
]
}

Create project on firebase console, It returns me Server Accesss key and Legacy key under Project Overview-> project settings -> Cloud Message.

Copy the legacy server key and put it on your script API_ACCESS_KEY;

Will work.

@MohammadaliMirhamed
Copy link
Author

MohammadaliMirhamed commented Sep 12, 2019

please help me to resolve this problem for fcm push notification using php
{
"multicast_id": 8064599321131175636,
"success": 0,
"failure": 1,
"canonical_ids": 0,
"results": [
{
"error": "MismatchSenderId"
}
]
}

Create project on firebase console, It returns me Server Accesss key and Legacy key under Project Overview-> project settings -> Cloud Message.

Copy the legacy server key and put it on your script API_ACCESS_KEY;

Will work.

Your Well Come Dear

@blessingchirume
Copy link

blessingchirume commented Jan 16, 2021

Thanks Pal

it worked like magic. So for the benefit of those struggling with this error
"{"multicast_id":5298140393388678667,"success":0,"failure":1,"canonical_ids":0,"results":[{"error":"InvalidRegistration"}]}"

I faced this for nearly a week only to discover that i was parsing a wrong device token. the reason being i was getting the token on device ready event through an alert() method. since i couldn`t copy it directly i had to screenshot the result then use some image to text app to get the token as string which is where i got it all wrong. To fix this i had to use use the whatsapp api to send the token to my account as plain text.

then it worked.

@MohammadaliMirhamed
Copy link
Author

MohammadaliMirhamed commented Jan 30, 2021

Thanks Pal

it worked like magic. So for the benefit of those struggling with this error
"{"multicast_id":5298140393388678667,"success":0,"failure":1,"canonical_ids":0,"results":[{"error":"InvalidRegistration"}]}"

I faced this for nearly a week only to discover that i was parsing a wrong device token. the reason being i was getting the token on device ready event through an alert() method. since i couldn`t copy it directly i had to screenshot the result then use some image to text app to get the token as string which is where i got it all wrong. To fix this i had to use use the whatsapp api to send the token to my account as plain text.

then it worked.

hi dude .
glad to heard about that .
your welcome

@Ulugbek-Muhammadjonov
Copy link

Ulugbek-Muhammadjonov commented May 7, 2022

very good

@MohammadaliMirhamed
Copy link
Author

MohammadaliMirhamed commented May 7, 2022

very good
@Ulugbek-Muhammadjonov
your welcome

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment