Как отправлять уведомления в веб-приложение с помощью Python

1656563416 kak otpravlyat uvedomleniya v veb prilozhenie s pomoshhyu python

от Лукаса Хилда

BmpbVPfs2eXWxoCpdbnWMdfYCkf33IAtMbSu
Фото Дарьи Непряхиной на Unsplash

Нативные программы в последнее время стали очень популярными, в основном благодаря таким функциям, как работа в автономном режиме, переходы, легкое распространение и, конечно, push-сообщения. Но, к сожалению, вам нужно хорошее знание языков, таких как Java или Swift, чтобы создать ценное родное приложение.

Прогрессивные веб-приложения

Прогрессивные веб-приложения (PWA) – это приложения JavaScript, которые запускаются в обозревателе. Они прилагают усилия, чтобы перенести некоторые функции родной программы в Интернет. PWA легко разработать, если вы владеете фундаментальными знаниями HTML, CSS и, в частности, JavaScript. Более того, если ваш сервис уже доступен для настольных устройств на веб-сайте, легче добавить функции веб-приложения, а не разрабатывать родное мобильное приложение.

Уведомления

Уведомления информируют пользователей о новых сообщениях, сообщают им о новой публикации в блоге и т.д.

Многие родные программы посылают пользователю push-уведомления. Это также возможно с помощью PWA и API сообщений.

H0tzewZI3D7d-DcwdysrJx3CpPTE2IcvEUeE
Фото Джейми Стрит на Unsplash

OneSignal

В этом учебнике мы будем использовать OneSingal для отправки уведомлений в нашу веб-приложение. OneSignal – это мощный инструмент, обеспечивающий простой интерфейс для push-сообщений. Они также предоставляют Rest API, который мы будем использовать для отправки уведомлений.

Настройте OneSignal

Чтобы отправлять push-сообщения, сначала необходимо настроить OneSignal. Для этого вам нужна аккаунт на OneSignal. Перейдите на их веб-сайт и нажмите «Войти» в правом верхнем углу.

Дальше вам нужно будет создать приложение. Дайте ему название и выберите «Настройка платформы». Здесь вы выбираете «Все браузеры». После этого вы выбираете «пользовательский код» в качестве интеграции. Затем вы должны предоставить некоторую информацию о своем веб-сайте.

В области настроек программы есть вкладка под названием «Ключи и идентификаторы». Скопируйте оба ключа на потом.

CZolsxSB91fV86I3nzpJL2qHSLEOfSyR0eWz

Важно: не предоставляйте свой ключ REST API. Держите это приватно!

Вот и все для настройки OneSignal. Это было просто!

Настройте наш веб-сайт

В следующем разделе мы добавим функцию уведомлений на наш веб-сайт. Веб-сайту придется ждать уведомлений, отправленных OneSignal, и отображать их пользователю.

Чтобы сообщить браузеру, что вы создаете прогрессивную веб-приложение, мы добавим файл под названием manifest.json к корню нашего проекта.

{  "name": "My Application",  "short_name": "Application",  "start_url": ".",  "display": "standalone",  "background_color" : "#fff" ,  "description": "We send notifications to you",  "gcm_sender_id": "482941778795",  "gcm_sender_id_comment": "Do not change the GCM Sender ID"}

Первые шесть пар ключ-значения описывают внешний вид программы. The gcm_send_id важно для отправки уведомлений. Если вы хотите узнать больше о manifest.jsonВы можете просмотреть документацию Mozilla.

Ваш браузер автоматически не ищет манифест. Вы должны указать путь к нему в каждом HTML-документе <head> тег.

<head>    ...    <link rel="manifest" href="    ...</head>

Кроме того, нам необходим код JavaScript, чтобы подключить наш веб-сайт к OneSignal.

Вы можете поместить код для этого в тег script в файле &lt;head> часть. Не забудьте повторноразместить мое-app-id с собственным идентификатором программы OneSignal.

<head>    <script src=" async=""></script>        <script>        var OneSignal = window.OneSignal || [];        OneSignal.push(function () {            OneSignal.init({                appId: "my-app-id",                autoRegister: false,                notifyButton: {                    enable: true,                },            });        });    <script></head>
rXjHpdqOUr9ahuanYkm9FlHip7ftX12pFV-n
Предложите пользователю подписаться на ваши уведомления

Когда вы хотите предложить пользователю подписаться на уведомления, вы выполняете этот фрагмент кода.

OneSignal.push(function () {    OneSignal.showHttpPrompt();});

Кроме того, вам нужен сервисный работник, прослушивающий уведомления в фоновом режиме. Поэтому вам понадобятся два файла в корневом каталоге вашего проекта.

OneSignalSDKUpdaterWorker.js

importScripts('https://cdn.onesignal.com/sdks/OneSignalSDKWorker.js');

OneSignalSDKWorker.js

importScripts('https://cdn.onesignal.com/sdks/OneSignalSDKWorker.js');

Доступ к API с помощью Python

OneSignal имеет простой в использовании Rest API. Конечные точки документированы в документации для разработчиков OneSignal.

JonbuaZJXt9N2C-HIZzS-JR6gp1trvGEZ741
Фото Макса Нельсона на Unsplash

Чтобы получить доступ к нему, нам нужно отправить HTTP-запросы. Поэтому мы будем использовать библиотеку под названием запросы. Чтобы установить его, вы можете использовать PIP, менеджер пакетов Python.

pip install requests

Это конечная точка API, которая нам необходима для отправки уведомлений: https://onesignal.com/api/v1/notifications.

Протокол HTTP имеет несколько способов. В этом случае мы хотим запросить POST. Для этого необходимо импортировать запросы и выполнить функцию.

import requests
requests.post("https://onesignal.com/api/v1/notifications")

OneSignal хочет подтвердить, что только вы можете отправлять уведомления на свой веб-сайт. Вам нужно добавить HTTP-заголовок с вашим Rest API Key от OneSignal.

requests.post(    "    headers={"Authorization": "Basic my-rest-api-key"})

Не забудьте заменить my-rest-api-key с помощью ключа Rest API.

Кроме того, вам нужна базовая информация о своем уведомлении.

data = {    "app_id": "my-app-id",    "included_segments": ["All"],    "contents": {"en": "Hello"}}
requests.post(    "    headers={"Authorization": "Basic my-rest-api-key"},    json=data)

Заменить my-app-id с личным идентификатором программы. Далее вы выбираете, кто будет получать уведомления. Пример значений "All", "Active Users", "Inactive Users”. Но вы тоже можете создавать собственные сегменты. И для последнего вы добавляете некоторое содержимое сообщения на английском языке. Если вам нужен другой язык, вы также можете добавить его здесь.

Это! Если вы подписались на оповещения, вы должны получить push-уведомление.

Z6q3cFDErQJTIstdDh8lc93gBpRgtvLxJmTs

Отправляйте уведомления с помощью API Wrapper

Поскольку мой код стал несколько грязным со многими уведомлениями, я создал обертку API для OneSignal.

Обертка API

Но что такое обертка API? Обертка API облегчает вам доступ к API. Можно сказать, что это API для API. Вы вызываете обертку API, а не непосредственно API.

Вы можете установить обертку с названием OneSignal-Notifications от pip.

pip install onesignal-notifications

Теперь вы можете импортировать его и настроить клиента.

from onesignal import OneSignal, SegmentNotificationclient = OneSignal("MY_APP_ID", "MY_REST_API_KEY")

Чтобы отправить уведомления, нужно инициализировать класс Сообщения о сегментах и воспользуйтесь методом отправить.

notification_to_all_users = SegmentNotification(    {        "en": "Hello from OneSignal-Notifications"    },    included_segments=SegmentNotification.ALL)client.send(notification_to_all_users)

Возможно, это кажется вам ненужным, поскольку для этого требуется еще больше строк кода. Но если у вас есть несколько уведомлений, это значительно облегчит процесс, а ваш код более красивый.

Например, если вы хотите отправить уведомление, основанное на некоторых условиях, оболочка API имеет для этого специальный класс.

from onesignal import OneSignal, FilterNotification, Filterclient = OneSignal("MY_APP_ID", "MY_REST_API_KEY")
filter_notification = FilterNotification(    {        "en": "Hello from OneSignal-Notifications"    },    filters=[        Filter.Tag("my_key", "<", "5"),        "AND",        Filter.AppVersion(">", "5"),        "OR",        Filter.LastSession(">", "1"),    ])

Существует множество специальных параметров, которые можно предоставить, чтобы адаптировать свое уведомление. Например, к оповещению можно добавить кнопки. Весь список всех параметров можно найти здесь.

from onesignal import OneSignal, FilterNotification, Filterclient = OneSignal("MY_APP_ID", "MY_REST_API_KEY")
filter_notification = SegmentNotification(    {        "en": "Hello from OneSignal-Notifications"    },    web_buttons=[        {          "id": "like-button",          "text": "Like",          "icon": "          "url": "    ],    included_segments=SegmentNotification.ALL)

Если вы хотите узнать больше о OneSignal-Notificationsвы можете посмотреть в репозитории GitHub или документации.

Добавить комментарий

Ваш адрес email не будет опубликован.