Skip to content

Instantly share code, notes, and snippets.

@MohammadaliMirhamed
Last active June 24, 2023 07:38
Show Gist options
  • Star 82 You must be signed in to star a gist
  • Fork 36 You must be signed in to fork a gist
  • Save MohammadaliMirhamed/7384b741a5c979eb13633dc6ea1269ce to your computer and use it in GitHub Desktop.
Save MohammadaliMirhamed/7384b741a5c979eb13633dc6ea1269ce to your computer and use it in GitHub Desktop.
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;
@kamal-nyaupane
Copy link

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

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

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

@MohammadaliMirhamed
Copy link
Author

@ark2018 check your api code

@JayeshBreezeway
Copy link

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

@deepak-gehlot
Copy link

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

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

Thank you.

@mosesyashua
Copy link

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

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

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

Thank you.

Your welcome

@MohammadaliMirhamed
Copy link
Author

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

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

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

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

very good

@MohammadaliMirhamed
Copy link
Author

very good
@Ulugbek-Muhammadjonov
your welcome

@meytirm
Copy link

meytirm commented Jan 13, 2023

It's awesome

@MohammadaliMirhamed
Copy link
Author

It's awesome
Thanks

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