Я хотел бы отправить push-уведомление в PHP, но я не знаю, как это сделать.
Я успешно создал работника сервиса.
Я взял ключ с этой страницы https://web-push-codelab.appspot.com/. Но я не понимаю, почему они дают закрытый ключ?
Затем я проверяю свое push-уведомление и отправляю уведомление с этой страницы.
Но я бы хотел отправить push-уведомление из моего PHP-запроса.
Более того, я бы работал на всех возможных баузерах, этот код работает только с Google Chrome. Можем ли мы сделать это с помощью firefox, safari, opéra?
Я уже использую библиотеку web-push-php. (доступно здесь: https://github.com/web-push-libs/web-push-php)
Я копирую / делаю код из документации и заменяю свой ключ и сообщения: `
<?php
error_reporting(E_ALL);
ini_set('display_errors',1);
use Minishlink\WebPush\WebPush;$notifications = array(
array(
'endpoint' => 'https://updates.push.services.mozilla.com/push/abc...', // Firefox 43+
'payload' => 'hello !',
'userPublicKey' => '*****', // base 64 encoded, should be 88 chars
'userAuthToken' => '*****', // base 64 encoded, should be 24 chars
), array(
'endpoint' => 'https://android.googleapis.com/gcm/send/abcdef...', // Chrome
'payload' => '{msg:"je fais un test"}',
'userPublicKey' => '*****',
'userAuthToken' => null,
)
);
$webPush = new WebPush();
// send multiple notifications with payload
foreach ($notifications as $notification) {
$webPush->sendNotification(
$notification['endpoint'],
$notification['payload'], // optional (defaults null)
$notification['userPublicKey'], // optional (defaults null)
$notification['userAuthToken'] // optional (defaults null)
);
}
$webPush->flush();
{ «Multicast_id»: 6971447349404987967, «успех»: 0, «провал»: 1, «canonical_ids»: 0, «Результаты»: [{ «ошибка»: «InvalidRegistration»}]} `
But this code don't work, the page return this :
Я также создаю учетную запись Firebase, но я не знаю, как ее использовать.
И я хотел бы также настроить уведомления.
Я хотел бы отправить уведомление типа «XXX прокомментировал ваше сообщение» или «XXX понравился ваш пост» или «XXX отправить вам запрос на добавление в друзья»
Надеюсь, вы можете помочь мне.
Я взял ключ с этой страницы https://web-push-codelab.appspot.com/. Но
я не понимаю, почему они дают закрытый ключ?
Сервер должен генерировать открытую / закрытую пару ключей. Открытый ключ используется браузером для создания подписки. Закрытый ключ остается на сервере и используется для шифрования push-сообщения.
И я хотел бы также настроить уведомления. Я хотел бы отправить
уведомление типа «ххх прокомментировал ваше сообщение» или «ххх понравился
ваш пост «или» ххх отправил вам запрос в друзья «
В какой-то момент у вас есть браузер зарегистрировать подписку, позвонив pushManager.subscribe
(но этот код отсутствует в вашем вопросе). Это возвращает обещание, которое разрешается в подписке. Вы должны связать эту подписку с аутентифицированным пользователем. Например, вы можете использовать AJAX, чтобы отправить подписку на ваш сервер и сохранить ее с аутентифицированным пользователем. Всякий раз, когда вы хотите уведомить этого пользователя, вы можете использовать подписку, связанную с этим пользователем.
Возможно, вы захотите взглянуть на https://web-push-book.gauntface.com/.
Других решений пока нет …