Отправьте запрос веб-push-уведомлений через FCM с помощью PHP и cURL - PullRequest
0 голосов
/ 22 ноября 2018

Во-первых: я запускаю свой бэкэнд службы уведомлений на управляемом веб-сервере.Поэтому я не могу установить что-либо вроде 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

...