Avatar of BR
BR
Flag for Turkey asked on

Web push notification

Dear Experts,
I have a web site,
I use PHP 7.1.

All my pages are html5 and PHP
I want to send push notification to my web site users.
How can i do that?

Do you use push notification on your web sites?
Which service do you use?
Do you provide the source code?
Thank you
Web DevelopmentPHPJavaScript

Avatar of undefined
Last Comment
Scott Fell

8/22/2022 - Mon
ASKER CERTIFIED SOLUTION
Kimputer

Log in or sign up to see answer
Become an EE member today7-DAY FREE TRIAL
Members can start a 7-Day Free trial then enjoy unlimited access to the platform
Sign up - Free for 7 days
or
Learn why we charge membership fees
We get it - no one likes a content blocker. Take one extra minute and find out why we block content.
Not exactly the question you had in mind?
Sign up for an EE membership and get your own personalized solution. With an EE membership, you can ask unlimited troubleshooting, research, or opinion questions.
ask a question
BR

ASKER
Dear Kimputer, I read the link you sent, and

now I am here. I use PHP.
what should I do now in order to send the push notification?

cURL Command to Send Push
curl --header "Authorization: key=............" --header Content-Type:"application/json" https://android.googleapis.com/gcm/send -d "{\"registration_ids\":[\".......................\"]}"
David Favor

As Kimputer suggested, this entire process is complex.

When you ask, "what should I do now in order to send the push notification?"

The answer is either you or someone you hire will start through the above link + implement every step, till you have push notifications working.

This can be a long process, depending on your how much infrastructure you already have setup, your level of coding expertise.

Just jump in and get started. If you get stuck on a specific step, then ask another question about a specific step.

Note: Be sure to go through each step + debug work done so far, to ensure every incremental step works.
David Favor

Tip: If the above seems daunting...

You can always use an existing service like https://pushcrew.com/ to speed up + simplify your process.
Experts Exchange is like having an extremely knowledgeable team sitting and waiting for your call. Couldn't do my job half as well as I do without it!
James Murphy
BR

ASKER
Dear David,

I get this error message:

The request was missing an Authentication Key (FCM Token). Please, refer to section "Authentication" of the FCM documentation, at https://firebase.google.com/docs/cloud-messaging/server.

since I had this error message I add the code to Authentication Key which I get from under firebase Project credentials / Legacy server key.

My code is here:

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://android.googleapis.com/gcm/send",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "{\"registration_ids\":[\".......................\"]}",
  CURLOPT_HTTPSHEADER => array(
    "authorization: key=.......................",
	"Authentication Key= ......................",
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}

Open in new window

I think I'm very close to send push notification... I need your help, thank you
David Favor

Tip: Use the curl command line command first. Once you get this working, port to using libcurl from PHP.

Cut & Paste the exact "cURL Error #:" message emitted.
BR

ASKER
the error message is: The request was missing an Authentication Key (FCM Token). Please, refer to section "Authentication" of the FCM documentation, at https://firebase.google.com/docs/cloud-messaging/server.
Error 401
Get an unlimited membership to EE for less than $4 a week.
Unlimited question asking, solutions, articles and more.
BR

ASKER
thank you both
Scott Fell

https://www.experts-exchange.com/questions/29136119/Web-push-notification.html#a42799942

Yes, you will need to use firebase now https://firebase.google.com/docs/cloud-messaging/

There are a couple of options, one is making this sending notifications to the browser.  The disadvantage here is it will require asking permission from the user.  This means part of your application code will be knowing if the user has authorized push in the browser.  The big advantage of this method is you may not need to use a third party service and you are simply sending the notification to the front end https://developers.google.com/web/fundamentals/push-notifications/ 

The overall better experience is going to be using a third party service and it looks like that is what EE does here (See the notifications you get on for the bell or messages at the top right of your screen). Some options are:
https://firebase.google.com/docs/cloud-messaging/server
https://www.twilio.com/notify
https://onesignal.com/webpush
https://azure.microsoft.com/en-us/services/notification-hubs/

Keep in mind there is a difference between pushing notifications to the browser vs keeping the push notification to your app.