Поделиться через


Веб-push-уведомления с помощью Центров уведомлений Azure

В этой статье описывается, как отправлять push-уведомления браузера отдельным пользователям с помощью Центров уведомлений Azure.

На высоком уровне процесс:

  1. Задайте учетные данные:

  2. Создание регистраций и установок.

  3. Отправка push-уведомлений:

Обзор

Веб-push-уведомления (или push-уведомления браузера) — это тип уведомлений, которые клиенты получают в своих настольных браузерах или, в некоторых случаях, в мобильных браузерах для каждого веб-сайта.

Центры уведомлений Azure теперь поддерживают отправку браузеров для всех основных браузеров, включая Microsoft Edge, Google Chrome и Mozilla Firefox. Apple Safari не входит в комплект. Для Apple Safari можно использовать существующую поддержку APNS, как описано в разделе "Настройка push-уведомлений Safari" с проверкой подлинности на основе сертификатов.

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

Поддержка push-уведомлений браузера на ноутбуках:

Операционная система Браузеры
ОС Windows Google Chrome версии 48+
Microsoft Edge версии 17+
Mozilla Firefox версии 44+
Safari v7+
Опера версии 42+
macOS Chrome версии 48+
Firefox версии 44+
Safari v7+
Опера версии 42+
ОС Linux Chrome версии 48+
Firefox версии 44+
Safari v7+
Опера версии 42+

Поддержка push-уведомлений браузера на планшетных компьютерах:

Операционная система Браузеры
ОС Windows Chrome версии 48+
Firefox версии 44+
Опера версии 42+
iOS Не поддерживается.
Операционная система Android Chrome версии 48+
Firefox версии 44+
Опера версии 42+

Поддержка push-уведомлений браузера на мобильных устройствах:

Операционная система Браузеры
iOS Не поддерживается.
Операционная система Android Chrome версии 48+
Firefox версии 44+
Опера версии 42+

Настройка учетных данных

Чтобы подписаться на push-уведомления браузера на веб-сайте, можно использовать ключи VAPID . Учетные данные VAPID можно создавать с помощью таких служб, как генератор ключей VAPID. Учетные данные должны выглядеть примерно так:

{ 
    "location": "South Central US", 
    "properties": { 
        "browserCredential": { 
            "properties": { 
                "subject": "mailto:email@microsoft.com", 
                "vapidPublicKey": "some-vapid-public-key", 
                "vapidPrivateKey":"some-vapid-private-key" 
            } 
        } 
    } 
} 

Настройка учетных данных на портале Azure

Чтобы задать учетные данные push-уведомлений браузера на портале Azure, выполните следующие действия.

  1. На портале Azure откройте колонку браузера (веб-push-отправка) в центре уведомлений.

    Скриншот, показывающий вкладку браузера (веб пуш) в Центрах уведомлений.

  2. Введите существующие ключи VAPID или создайте новую пару ключей VAPID с помощью службы, например генератора ключей VAPID.

  3. Выберите Сохранить.

Настройка учетных данных с помощью REST API

Вы также можете задать учетные данные браузера для браузерных уведомлений с помощью REST API, например, с помощью метода Create или Update Hub REST API, API Azure Resource Manager или RP версии 2.

Введите учетные данные в этом формате, указав идентификатор подписки, группу ресурсов, пространство имен и концентратор уведомлений:

https://management.azure.com/subscriptions/{subscription}/resourceGroups/{resource-group}/providers/Microsoft.NotificationHubs/namespaces/{namespace}/notificationHubs/{hub}api-version=2016-03-01

Настройка учетных данных с помощью пакетов SDK Azure

Данные для подлинности браузерных уведомлений можно установить с помощью средств разработки SDK Azure. Ниже приведен пример использования пакета SDK для .NET:

var browserCreds = new BrowserCredential 
{ 
    Subject = "<subject>", 
    VapidPublicKey = "<vapid public key>", 
    VapidPrivateKey = "<vapid private key>", 
} 

и:

await nhManagementClient.NotificationHubs.CreateOrUpdateAsync(config.ResourceGroupName, config.NamespaceName, config.HubName, new NotificationHubCreateOrUpdateParameters(config.Location) 
{ 
   BrowserCredential = browserCreds 
});

Создание регистраций и установок

Массовые отправки требуют регистрации или установки. Вы также можете использовать регистрации и установки в отладочных отправках.

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

Текст запроса на собственную регистрацию

<?xml version="1.0" encoding="utf-8"?><entry xmlns="http://www.w3.org/2005/Atom"><content type="application/xml"><BrowserRegistrationDescription xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/netservices/2010/10/servicebus/connect"><Endpoint></Endpoint><P256DH></P256DH><Auth></Auth></BrowserRegistrationDescription></content></entry> 

Текст запроса на регистрацию шаблона браузера

<?xml version="1.0" encoding="utf-8"?> 
<entry xmlns="http://www.w3.org/2005/Atom"> 
    <content type="application/xml"> 
        <BrowserTemplateRegistrationDescription xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/netservices/2010/10/servicebus/connect"> 
            <Endpoint></Endpoint> 
            <P256DH></P256DH> 
            <Auth></Auth> 
            <BodyTemplate><![CDATA[{"title":"asdf","message":"xts"}]]></BodyTemplate> 
        </BrowserTemplateRegistrationDescription> 
    </content> 
</entry> 

Текст запроса на установку

{  
    "installationId": "installation-id", 
    "platform": "browser", 
    "pushChannel": { 
            "endpoint": "", 
            "p256dh": "", 
            "auth": "" 
        } 
}   

Создание нативных регистраций (SDK)

await notificationHubClient.CreateBrowserNativeRegistrationAsync(subscriptionInfo, tagSet);

Создание регистраций шаблонов (SDK)

await notificationHubClient.CreateBrowserTemplateRegistrationAsync(subscriptionInfo, template, tagSet);

Создание установок браузера (SDK)

var browserPushSubscription = new BrowserPushSubscription 
            { 
                Endpoint = "", 
                P256DH = "", 
                Auth = "", 
            }; 

var browserInstallation = new BrowserInstallation 
            { 
                InstallationId = installationId, 
                Tags = tags, 
                Subscription = browserPushSubscription, 
                UserId = userId, 
                ExpirationTime = DateTime.UtcNow.AddDays(1), 
            }; 

await notificationHubClient.CreateOrUpdateInstallationAsync(browserInstallation);

Отправка push-уведомлений

После установки учетных данных для push-уведомлений в браузер и создания регистраций и инсталляций для устройств вы будете готовы создавать push-уведомления. В этом разделе описывается, как создать уведомление для прямой отправки, отправки аудитории и отправки для отладки (тестирования).

Создание прямой отправки

Для прямой отправки требуется URI конечной точки, ключ p25DH и секрет проверки подлинности из подписки браузера. Дополнительные сведения о прямой отправке уведомлений см. в разделе "Прямая отправка".

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

  1. Задайте следующие заголовки для push-уведомлений браузера:

    • ServiceBusNotification-Format - browser
    • ServiceBusNotification-DeviceHandle - endpoint endpoint: поле из подписки
    • P256DH p256dh: поле из подписки
    • Auth auth: поле из подписки
  2. Создайте текст сообщения. Текст сообщения обычно находится в следующем формате:

    { 
      "title": "Some Title", 
      "body": "Some body of a message" 
    } 
    

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

  3. Отправьте уведомление.

Вы также можете использовать пакет SDK для .NET для создания прямой отправки:

var browserSubscriptionEndpoint = ""; 
var browserPushHeaders = new Dictionary<string, string> 
            { 
               { "P256DH", "" }, 
               { "Auth", "" }, 
            }; 

var directSendOutcome = await notificationHubClient.SendDirectNotificationAsync(new BrowserNotification("payload", browserPushHeaders), browserSubscriptionEndpoint);

Отправка сообщений аудитории

Для отправки сообщения аудитории используйте тот же ServiceBus Notification-Format заголовок, который используется для прямой отправки, и измените полезные данные сообщения по мере необходимости. При необходимости укажите выражение тега с помощью заголовка ServiceBusNotification-Tags . Дополнительные сведения о создании отправки аудитории см. в статье "Отправка собственного уведомления APNS".

Чтобы создать рассылку для аудитории с помощью пакета SDK, используйте следующую команду:

var outcome = await notificationHubClient.SendNotificationAsync(new BrowserNotification(payload, tagExpression);

Создание отладочных и тестовых отправок

Отладочные отправки создаются на портале Azure и требуют регистрации и установки.

После создания регистраций для устройств выполните следующие действия, чтобы создать уведомление об отладочной отправке:

  1. На портале Azure откройте колонку "Отправка тестов " в центре уведомлений.

    Снимок экрана: колонка

  2. В поле "Платформа" выберите "Браузер".

  3. Укажите выражение "Отправить в тег".

  4. Измените Payload на нужное вам сообщение.

  5. Выберите Отправить.

Дальнейшие действия