Azure Notification Hubs ile web anında iletme bildirimleri

Bu makalede, Azure Notification Hubs kullanarak tek kullanıcılara tarayıcı anında iletme bildirimleri gönderme açıklanmaktadır.

Yüksek düzeyde işlem şu şekildedir:

  1. Kimlik bilgilerini ayarlama:

  2. Kayıtlar ve yüklemeler oluşturun.

  3. Anında iletme bildirimleri gönderme:

Genel Bakış

Web gönderimi (veya tarayıcı gönderimi), müşterilerin masaüstü tarayıcılarına veya bazı durumlarda mobil tarayıcılarına web sitesi temelinde aldıkları bir bildirim türüdür.

Azure Notification Hubs artık browser push Microsoft Edge, Google Chrome ve Mozilla Firefox gibi tüm önemli tarayıcılar için desteklenmektedir. Apple Safari dahil değildir. Apple Safari için, Sertifika tabanlı kimlik doğrulamasıyla Safari anında iletme bildirimlerini yapılandırma bölümünde açıklandığı gibi mevcut APNS desteğini kullanabilirsiniz.

Tarayıcı gönderimi, aşağıdaki işletim sistemlerine ve tarayıcılara sahip cihazlarda platformlar arasında desteklenir.

Dizüstü bilgisayarlarda tarayıcı anında iletme desteği:

İşletim sistemi Tarayıcılar
Windows işletim sistemi Google Chrome v48+
v17+ Microsoft Edge
Mozilla Firefox v44+
Safari v7+
Opera v42+
macOS Chrome v48+
Firefox v44+
Safari v7+
Opera v42+
Linux İşletim Sistemi Chrome v48+
Firefox v44+
Safari v7+
Opera v42+

Tablet bilgisayarlarda tarayıcı anında iletme desteği:

İşletim sistemi Tarayıcılar
Windows işletim sistemi Chrome v48+
Firefox v44+
Opera v42+
Ios Desteklenmiyor.
Android işletim sistemi Chrome v48+
Firefox v44+
Opera v42+

Mobil cihazlarda tarayıcı anında iletme desteği:

İşletim sistemi Tarayıcılar
Ios Desteklenmiyor.
Android işletim sistemi Chrome v48+
Firefox v44+
Opera v42+

Kimlik bilgilerini ayarlama

Web sitenizde tarayıcı anında iletme bildirimlerine abone olmak için VAPID anahtarlarını kullanabilirsiniz. VAPID anahtar oluşturucu gibi hizmetleri kullanarak VAPID kimlik bilgileri oluşturabilirsiniz. Kimlik bilgileri aşağıdaki örneğe benzer görünmelidir:

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

Azure portalında kimlik bilgilerini ayarlama

Azure portalında tarayıcı anında iletme kimlik bilgilerini ayarlamak için şu adımları izleyin:

  1. Azure portalında bildirim hub'ınızın Browser (Web Push) dikey penceresini açın.

    Notification Hubs'da Tarayıcı (Web Anında Bildirim) panelini gösteren ekran görüntüsü.

  2. Mevcut VAPID anahtarlarınızı girin veya VAPID anahtar oluşturucu gibi bir hizmet kullanarak yeni bir VAPID anahtar çifti oluşturun.

  3. Kaydetseçeneğini seçin.

REST API kullanarak kimlik bilgilerini ayarlama

Hub REST API'sini oluşturma veya güncelleme yöntemini, Azure Resource Manager API'sini veya V2 RP'sini kullanarak, REST API aracılığıyla tarayıcı gönderimi için tarayıcı kimlik bilgilerini de ayarlayabilirsiniz.

Abonelik kimliğini, kaynak grubunu, ad alanını ve bildirim hub'ını sağlayarak kimlik bilgilerini şu biçimde girin:

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

Azure SDKs kullanarak kimlik bilgilerini ayarlama

Azure SDKs kullanarak tarayıcı gönderimi için kimlik bilgilerini ayarlayabilirsiniz. .NET SDK'sını kullanan bir örnek aşağıda verilmişti:

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

ve:

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

Kayıt ve yükleme oluşturma

Toplu göndermeler için kayıtlar veya yüklemeler gerekir. Ayrıca hata ayıklama gönderimlerinde kayıtları ve yüklemeleri de kullanabilirsiniz.

Aşağıdaki örneklerde yerel kayıt, şablon kaydı ve tarayıcı yüklemesi için kayıt isteği gövdesi gösterilmektedir.

Doğal kayıt istek içeriği

<?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> 

Tarayıcı şablonu kayıt isteği gövdesi

<?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> 

Yükleme isteği gövdesi

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

Yerel kayıtlar oluşturma (SDK)

await notificationHubClient.CreateBrowserNativeRegistrationAsync(subscriptionInfo, tagSet);

Şablon kayıtları oluşturma (SDK)

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

Tarayıcı yüklemeleri oluşturma (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);

Anında bildirim gönder

Tarayıcı gönderimi için kimlik bilgilerini ayarladıktan ve cihazlar için kayıtlar ve yüklemeler oluşturduktan sonra anında iletme bildirimleri oluşturmaya hazırsınız demektir. Bu bölümde , doğrudan gönderme|, hedef kitle gönderme ve hata ayıklama (test) gönderme için nasıl bildirim oluşturulacağı açıklanır.

Doğrudan gönderme oluşturma

Doğrudan gönderme için bir tarayıcı aboneliğinden uç nokta URI'si, p25DH anahtarı ve kimlik doğrulama sırrı gerekmektedir. Doğrudan gönderme bildirimleri hakkında daha fazla bilgi için bkz. Doğrudan gönderme.

Doğrudan gönderme bildirimi oluşturmak için şu adımları izleyin:

  1. Tarayıcı gönderimi için aşağıdaki üst bilgileri ayarlayın:

    • ServiceBusNotification-Format - browser
    • ServiceBusNotification-DeviceHandle - endpoint: abonelikteki endpoint alanı
    • P256DH: abonelikten p256dh alanı
    • Auth: abonelikten auth alanı
  2. İleti gövdesini oluşturun. İleti gövdesi genellikle şu biçimdedir:

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

    Gövdedeki diğer alanları belirtebilirsiniz; örneğin, iconsimgesini ileti başına değiştirmek için .

  3. Bildirimi gönderin.

Doğrudan gönderme oluşturmak için .NET SDK'sını da kullanabilirsiniz:

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

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

Hedef kitleye gönderi oluşturma

Hedef kitle gönderimi için, doğrudan gönderim için kullanılan ServiceBus Notification-Format üst bilgisini aynı şekilde kullanın ve ileti yükünü istediğiniz gibi değiştirin. İsteğe bağlı olarak, ServiceBusNotification-Tags başlığı kullanarak bir etiket ifadesi belirtin. Hedef kitle gönderme oluşturma hakkında daha fazla bilgi için bkz. APNS yerel bildirimi gönderme.

SDK'yı kullanarak hedef kitle göndermesi oluşturmak için aşağıdaki deyimi kullanın:

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

Hata ayıklama/test göndermeleri oluşturma

Hata ayıklama göndermeleri Azure portalında oluşturulur ve kayıtlarla yüklemeleri gerektirir.

Cihazlar için kayıt oluşturduktan sonra hata ayıklama gönderme bildirimi oluşturmak için şu adımları izleyin:

  1. Azure portalında bildirim hub'ınızın Test Send dikey penceresini açın.

    Bildirim hub'ının Test Gönder panelini gösteren, test/hata ayıklama bildirimi göndermek için kullanılan ekran görüntüsü.

  2. Platform alanında Tarayıcı'yı seçin.

  3. Etiket İfadesine Gönder’i belirtin.

  4. Payload'ı istediğiniz iletiyle değiştirin.

  5. Gönder'i seçin.

Sonraki adımlar