Push-notifications
Всплывающие сообщения в браузерах или Push-notification один из способов уведомить клиента о том, что что-то произошло. Лично я терпеть не могу все всплывающее, но иногда без него никак. Будем настраивать Push-notification...
1. Идем сюда: https://console.firebase.google.com/
2. Жмем "Добавить проект". Обзываем его и нажимаем "Создать проект".
Ждем...
3. Идем в Cloud Messaging
4. Копируем: Ключ сервера и Идентификатор отправителя
5. Далее в корень сайта (особенно это касается firebase-messaging-sw.js) копируем файлы (предварительно правим в файлах скопированные ранее ID отравителя)
firebase-messaging-sw.js firebase_subscribe.js push.html
6. Работает только по https (http не сработает). Заходим на тестовую страницу: https:/usite/push.html. Будет запрошено разрешение на отправку сообщений. Разрешаем (т.е. подписываемся на получение сообщений)
push.html - для примера, скрипт firebase_subscribe.js можно включить в любую страницу, обычно это делают на главной странице. При подписке генериться токен вида:
dp7beSw6748:APA91bEoXNrg9mY3zyH5dR8VTc4hy01fZi5YRpjjqcNMoK5eJe36qNnpRj4aTU-GAEfR-KOzAtwSGlSdXwkQQBAjjbObC8Ffcv8J8HZMyLDrJp7J9gh7-lgHi7hNYqMXsypLpZFfvjtq
и отправляется на сервер. В примере он никуда не отправляется, но выводится в консоль, можно его скопипастить для дальнейшего использования. Соответственно, надо организовать прием и хранение токенов на Вашем сервере.
7. Пример отправка сообщения: send_push.php В файле send_push.php нужно указать Ключ сервера, токен, параметры самого сообщения. При отправки сообщения получим ответ примерно такого вида:
Response: {"multicast_id":4667200499784197270,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"https:\/\/updates.push.services.mozilla.com\/m\/gAAAAABbIhSC70S-FWS9gK8YS0QWZciGYpANHMEWYxcYJFV0t wBOGGeBv5JZxadtWXy3HgUiJUEzi09oQ0vG1t8IFgg7AOKx0NCXIzIjYpu9ezRPi711PcPSR6_lxRRziSdUle0SJfu8mn6ozy_wzUcr6AV7m-VXmgSHJfZlfXu-g2Iwc7zUpiIvC7jedH1FTT89c3oQV4g9"}]}
8. Автоматизируем процесс отправки как Вам нужно | хочется | требуется | попросил начальник | предусмотрено в проекте | не обязательно на PHP | на чем угодно но только не на PHP.
9. Отказ от подписки. Как отключить push-уведомления?
В браузере в настройках ищем "Уведомления".
Заходим в "Параметры"
Находим нужный(не нужный) сайт и удаляем его из списка, сохраняем изменения. Теперь токен, который браузер отправил на сайт уже не действителен. Пытаемся снова отправить сообщение и получаем ответ типа:
Response: {"multicast_id":7258476051622735459,"success":0,"failure":1,"canonical_ids":0,"results":[{"error":"NotRegistered"}]}
10. Допиливаем автоматизацию отправки сообщений, которая будет "забывать" о тех токенах, отправка на которые закончилась "failure" с ошибкой "error":"NotRegistered".
Успехов.
Дивись також:
- Справочник команд по Docker. Как поднять Swarm
- MongoDB Replica Set в Docker
- Справочник команд MongoDB
- Как настроить NGNIX Loader balancer + SSL в Docker
- Технология Push notifications. Как сделать на сайте
- Пример Websocket сервера и Websocket клиента. Пример простого чата на websocket
- Как использовать Memcached в Python
- Как использовать Radis в Python
Недавні записи
- Деякі думки про точність вимірювань в електроприводі
- Датчики Холла 120/60 градусів
- Модуль драйверів напівмосту IGBT транзисторів
- Драйвер IGBT транзисторів на A316J
- AS5600. Варіант встановлення на BLDC мотор
- DC-DC для IGBT драйверів ізольований 2 W +15 -8 вольт
- U-FOC - Векторне керування безколекторними моторами
- FOC - своя реалізація векторного керування. Підбиваю підсумки 2022 року
- Конструктор регуляторів моторів. Підбиваю підсумки 2022 року.
- Чому трифазні мотори стали такими популярними?
Tags
html uart pmsm hih-4000 mpu-9250 soldering dc-dc ethernet mpx4115a foc programmator ssd1306 bmp280 examples java-script raspberry-pi tim servo books eb-500 mongodb nodemcu docker wifi lcd adc max1674 dht11 python ssd1331 mpu-6050 remap rtc piezo solar displays led web css options dma gpio usart sms rfid esp8266 i2c 3d-printer usb pwm bldc atmega sensors barometer rs-232 git websocket motor meteo encoder bluetooth brushless timer watchdog eeprom battery st-link ngnix nvic smd stm32 flask gps capture avr bme280 flash bkp exti
Архіви