Navigation Menu

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;
@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