Во-первых: я запускаю свой бэкэнд службы уведомлений на управляемом веб-сервере.Поэтому я не могу установить что-либо вроде Web-Push-Apis из Github .
Мне уже удалось отправить уведомление, используя этот сайт с кодовой меткой Google .Путем небольшого анализа js-кода оттуда я добился отправки POST-Resuest на https://web -push-codelab.glitch.me / api / send-push-msg .Вот код, выполняющий успешный запрос (я получил Push):
<?php $ch = curl_init();
$posts =
array(
"subscription" => array(
"endpoint" => "https://fcm.googleapis.com/fcm/send/eSjh0WEJrr8:APA91bHZ27ZTNCI3jAz_cQ0zU7XJK48pJCfXYZBaNx6jSXE3x2Wp3NCh2bdj4KeOQrYTVfpDO9B5b8nD13AgZvtBjOEZrCADD30mtwBGxkH5DhpIAUGl3we95ksYxNn0dsI-2sqcfT5P",
"expirationTime" => null,
"keys" => array(
"p256dh"=>"BGmhdBvOcgU6yBeUtCiBoBDbG7lXEiOiRclS4_rviJi2OX-ji-9xKmoItsg30GoU6Rs-gHZUvqO6As3ZxUxAHP0",
"auth" =>"p9lkcCVolUAV2uUfYnhXlw"
)
),
"data" => $_GET["msg"],
"applicationKeys" => array(
"public" => "BCdiN5BM9evNa3pBIQbXMiq0l3k3mh0Z50yFo4LBsJqXQnh-MddYlPGhEE38urwJunmrcVNlF1VT3K8pZrFz8z4",
"private" => "e2gCLRWMf1wMa8khygzeNmr96o-YE21COMLaFqPvRAg"
)
);
curl_setopt($ch, CURLOPT_URL, "https://web-push-codelab.glitch.me/api/send-push-msg");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($posts));
curl_setopt($ch, CURLOPT_POST, 1);
$headers = array();
$headers[] = "Content-Type: application/json";
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
echo($result);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);?>
Пара ключей находится на странице glitch.me.Массив подписки содержит данные, которые мне дал Serviceworker Codelab .Мой Serviceworker выглядит точно так же, как и в Codelab.
Может кто-нибудь подскажет, пожалуйста, как мне выполнить запрос напрямую в FCM вместо (ab), используя службы со страницы примера Codelab