Link to home
Start Free TrialLog in
Avatar of BR
BRFlag for Türkiye

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
ASKER CERTIFIED SOLUTION
Avatar of Kimputer
Kimputer

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of 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\":[\".......................\"]}"
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.
Tip: If the above seems daunting...

You can always use an existing service like https://pushcrew.com/ to speed up + simplify your process.
Avatar of 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
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.
Avatar of 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
Avatar of BR

ASKER

thank you both
https://www.experts-exchange.com/questions/29136119/Web-push-notification.html?anchorAnswerId=42799942#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.