Öğretici: Azure Notification Hubs kullanarak Evrensel Windows Platformu uygulamalara bildirim gönderme

Bu öğreticide, bir Evrensel Windows Platformu (UWP) uygulamasına anında iletme bildirimleri göndermek için bir bildirim hub’ı oluşturursunuz. Windows Anında Bildirim Hizmeti’ni (WNS) kullanarak anında iletme bildirimleri alan boş bir Windows Mağazası uygulaması oluşturursunuz. Ardından, uygulamanızı çalıştıran tüm cihazlara anında iletme bildirimleri yayınlamak için bildirim hub'ınızı kullanırsınız.

Not

Bu öğreticinin tamamlanan kodunu GitHub'da bulabilirsiniz.

Aşağıdaki adımları uygulayın:

  • Windows Mağazası’nda bir uygulama oluşturma
  • Bildirim hub’ı oluşturma
  • Örnek bir Windows uygulaması oluşturma
  • Test bildirimleri gönderme

Önkoşullar

  • Azure aboneliği. Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir Azure hesabı oluşturun.
  • Microsoft Visual Studio 2017 veya üzeri. Bu öğreticideki örnekte Visual Studio 2019 kullanılır.
  • UWP uygulama geliştirme araçlarının yüklü olması
  • Etkin bir Windows Mağazası hesabı
  • Uygulamalardan ve diğer gönderenlerden bildirim al ayarının etkinleştirildiğini onaylayın.
    • Bilgisayarınızda Ayarlar penceresini başlatın.
    • Sistem kutucuğunu seçin.
    • Soldaki menüden Bildirimler ve eylemler'i seçin.
    • Uygulamalardan ve diğer gönderenlerden bildirim al ayarının etkinleştirildiğini onaylayın. Etkinleştirilmemişse etkinleştirin.

Bu öğreticiyi tamamlamak UWP uygulamalarına ilişkin diğer tüm Notification Hubs öğreticileri için önkoşuldur.

Windows Mağazası’nda bir uygulama oluşturma

Not

Microsoft Anında İletilen Bildirim Hizmeti (MPNS) kullanım dışı bırakıldı ve artık desteklenmiyor.

UWP uygulamalarına anında iletme bildirimleri göndermek için uygulamanızı Windows Mağazası ile ilişkilendirin. Daha sonra, WNS ile tümleştirmek için bildirim hub'ınızı yapılandırın.

  1. Windows Geliştirme Merkezi’ne gidin, Microsoft hesabınızla oturum açın ve ardından Yeni uygulama oluştur’u seçin.

    New app button

  2. Uygulamanız için bir ad yazın ve ardından Ürün adını ayır’ı seçin. Bunu yaptığınızda uygulamanız için yeni bir Windows Mağazası kaydı oluşturulur.

    Store app name

  3. Ürün yönetimi'ne genişletin ve ardından Ürün Kimliği'ne tıklayın. Paket SID'sini, Paket/Kimlik/Ad, Paket/Kimlik/Yayımcı ve Paket/Özellikler/PublisherDisplayName değerlerini not alın.

    Partner center apps

  4. Ürün yönetimi'nin altında WNS/MPNS'yi ve ardından Uygulama Kaydı portalı'ni seçin. Microsoft hesabınızda oturum açın. Uygulama kayıt sayfası yeni bir sekmede açılır.

    WNS page

  5. Temel Bilgiler'in altında İstemci kimlik bilgileri: Sertifika veya gizli dizi ekle'yi seçin.

    Notification Hub settings on Azure portal

  6. Sertifikalar ve gizli diziler sayfasındaki İstemci gizli dizileri'nin altında Yeni istemci gizli dizisi'ni seçin. Bir istemci gizli dizisi (uygulama gizli dizisi olarak da adlandırılır) oluşturduktan sonra, sayfadan çıkmadan önce bu gizli diziyi not alın.

    Uyarı

    İstemci gizli dizisi (uygulama gizli dizisi) değerlerini yalnızca oluşturduktan hemen sonra görüntüleyebilirsiniz. Sayfadan çıkmadan önce gizli diziyi kaydettiğinizden emin olun.

    Client secret on portal

    Uyarı

    Uygulama gizli anahtarı ve paket SID'si önemli güvenlik kimlik bilgileridir. Bu değerleri kimseyle paylaşmayın veya uygulamanızla birlikte dağıtmayın.

Bildirim Hub'ı oluşturma

  1. Azure Portal’ında oturum açın.

  2. Soldaki menüden Tüm hizmetler'i seçin. A screenshot showing select All Services for an existing namespace.

  3. Hizmetleri filtrele metin kutusuna Notification Hubs yazın. Hizmeti soldaki menüden SıK KULLANıLANLAR bölümüne eklemek için hizmet adının yanındaki yıldız simgesini seçin. Notification Hubs'ı seçin.

    A screenshot showing how to filter for notification hubs.

  4. Notification Hubs sayfasında araç çubuğunda Oluştur'u seçin.

    A screenshot showing how to create a new notification hub.

  5. Bildirim Hub'ı sayfasındaki Temel Bilgiler sekmesinde aşağıdaki adımları uygulayın:

    1. Abonelik'te, kullanmak istediğiniz Azure aboneliğinin adını seçin ve ardından mevcut bir kaynak grubunu seçin veya yeni bir kaynak grubu oluşturun.

    2. Ad Alanı Ayrıntıları'nda yeni ad alanı için benzersiz bir ad girin.

    3. Ad alanı bir veya daha fazla bildirim hub'ı içerdiğinden, Bildirim Hub'ı Ayrıntıları'na hub için bir ad yazın.

    4. Konum açılan liste kutusundan bir değer seçin. Bu değer, hub'ı oluşturmak istediğiniz konumu belirtir.

      Screenshot showing notification hub details.

    5. Kullanılabilirlik Alanları seçeneğini gözden geçirin. Kullanılabilirlik alanları olan bir bölge seçtiyseniz, onay kutusu varsayılan olarak seçilidir. Kullanılabilirlik Alanları ücretli bir özellik olduğundan katmanınıza ek ücret eklenir.

    6. Olağanüstü durum kurtarma seçeneğini belirleyin: Yok, Eşleştirilmiş kurtarma bölgesi veya Esnek kurtarma bölgesi. Eşleştirilmiş kurtarma bölgesi'ni seçerseniz yük devretme bölgesi görüntülenir. Esnek kurtarma bölgesi'ni seçerseniz, kurtarma bölgeleri listesinden seçim yapmak için açılan listeyi kullanın.

      Screenshot showing availability zone details.

    7. Oluştur'u belirleyin.

  6. Dağıtım tamamlandığında Kaynağa git'i seçin.

Hub için WNS ayarlarını yapılandırma

  1. BİlDİrİm AYARLARI kategorisinde Windows (WNS) öğesini seçin.

  2. Önceki bölümde not aldığınız Paket SID'sinin (bu "ms-app://<Your Package SID>" gibi) ve Güvenlik Anahtarı 'nın (Uygulama Gizli Anahtarı) değerlerini girin.

  3. Araç çubuğunda Kaydet seçeneğine tıklayın.

    The Package SID and Security Key boxes

Bildirim hub'ınız WNS ile birlikte çalışacak şekilde yapılandırıldı. Uygulamanızı kaydetmek ve bildirim göndermek için gerekli bağlantı dizelerine sahipsiniz.

Örnek bir Windows uygulaması oluşturma

  1. Visual Studio'da Dosya menüsünü açın, Yeni'yi ve ardından Proje'yi seçin.

  2. Yeni proje oluştur iletişim kutusunda aşağıdaki adımları tamamlayın:

    1. Üstteki arama kutusuna Windows Evrensel yazın.

    2. Arama sonuçlarında Boş Uygulama (Evrensel Windows) öğesini ve ardından İleri'yi seçin.

      New Project dialog

    3. Yeni projenizi yapılandırın iletişim kutusunda proje dosyaları için bir Proje adı ve Konum girin.

    4. Oluştur'u belirleyin.

  3. Hedef ve en düşük platform sürümleri için varsayılan değerleri kabul edin ve Tamam’ı seçin.

  4. Çözüm Gezgini'da Windows Mağazası uygulama projesine sağ tıklayın, Yayımla'yı ve ardından Uygulamayı Mağaza ile ilişkilendir'i seçin. Uygulamanızı Windows Mağazası ile ilişkilendirin sihirbazı görüntülenir.

  5. Sihirbazda Microsoft hesabınızla oturum açın.

  6. 2. adımda kaydettiğiniz uygulamayı seçin, İleri'yi ve ardından İlişkilendir'i seçin. Bunu yaptığınızda uygulama bildirimine gerekli Windows Mağazası kayıt bilgileri eklenir.

  7. Visual Studio'da çözüme sağ tıklayın ve ardından NuGet Paketlerini Yönet'i seçin. NuGet Paketlerini Yönet penceresi açılır.

  8. Arama kutusuna WindowsAzure.Messaging.Managed yazın, Yükle'yi seçin ve kullanım koşullarını kabul edin.

    The Manage NuGet Packages window

    Bu eylem Microsoft.Azure.NotificationHubs NuGet paketini kullanarak Windows için Azure Notification Hubs kitaplığına bir başvuru indirir, yükler ve ekler.

  9. App.xaml.cs Proje dosyasını açın ve aşağıdaki deyimleri ekleyin:

    using Windows.Networking.PushNotifications;
    using Microsoft.WindowsAzure.Messaging;
    using Windows.UI.Popups;
    
  10. Projenin App.xaml.cs dosyasında sınıfını App bulun ve aşağıdaki InitNotificationsAsync yöntem tanımını ekleyin. değerini <your hub name> Azure portalında oluşturduğunuz bildirim hub'ının adıyla DefaultListenSharedAccessSignature değiştirin ve <Your DefaultListenSharedAccessSignature connection string> yerine bildirim hub'ınızın Erişim İlkeleri sayfasındaki bağlantı dizesi yazın:

    private async void InitNotificationsAsync()
    {
        var channel = await PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();
    
        var hub = new NotificationHub("<your hub name>", "<Your DefaultListenSharedAccessSignature connection string>");
        var result = await hub.RegisterNativeAsync(channel.Uri);
    
        // Displays the registration ID so you know it was successful
        if (result.RegistrationId != null)
        {
            var dialog = new MessageDialog("Registration successful: " + result.RegistrationId);
            dialog.Commands.Add(new UICommand("OK"));
            await dialog.ShowAsync();
        }
    }
    

    Bu kod, WNS'den uygulamanın kanal URI'sini alır ve ardından bu kanal URI'sini bildirim hub'ınıza kaydeder.

    Not

    Yer tutucuyu hub name Azure portalında görünen bildirim hub'ının adıyla değiştirin. Ayrıca, bağlantı dizesi yer tutucuyu DefaultListenSharedAccessSignature önceki bir bölümde bildirim hub'ınızın Erişim İlkeleri sayfasından aldığınız bağlantı dizesi ile değiştirin.

  11. içindeki App.xaml.csolay işleyicisinin OnLaunched en üstüne yeni InitNotificationsAsync yönteme aşağıdaki çağrıyı ekleyin:

    InitNotificationsAsync();
    

    Bu eylem, uygulama her başlatıldığında kanal URI'sinin bildirim hub'ınıza kaydedilmesini garanti eder.

  12. Sağ tıklayın Package.appxmanifest ve Kodu Görüntüle (F7)'yi seçin. Ad değerini bulup <Identity .../> Paket/Kimlik/Ad ile değiştirin ve Publisher değerini daha önce oluşturduğunuz uygulamadaki Paket/Kimlik/Yayımcı değeriyle değiştirin.

  13. Uygulamayı çalıştırmak için klavyenin F5 tuşuna basın. Kayıt anahtarını içeren bir iletişim kutusu görüntülenir. İletişim kutusunu kapatmak için Tamam'a tıklayın.

    Registration successful

Uygulamanız şimdi bildirim almaya hazırdır.

Test bildirimleri gönderme

Azure portalından bildirim göndererek uygulamanızda bildirim alma testi gerçekleştirebilirsiniz.

  1. Azure portalında, Genel Bakış sekmesine geçin ve araç çubuğunda Test Gönderimi seçeneğini belirleyin.

    Test Send button

  2. Test Gönderimi penceresinde aşağıdaki eylemleri gerçekleştirin:

    1. Platformlar için Windows’u seçin.

    2. Bildirim Türü için Bildirim’i seçin.

    3. Gönder'i seçin.

      The Test Send pane

  3. Pencerenin en altındaki Sonuç listesinde Gönderme işleminin sonucuna bakın. Bir uyarı iletisi de görürsünüz.

    Result of Send operation

  4. Şu bildirim iletisini görürsünüz: Masaüstünüzde test iletisi.

    Notification message

Sonraki adımlar

Portalı veya konsol uygulamasını kullanarak tüm Windows cihazlarınıza yayın bildirimleri gönderdiniz. Belirli cihazlara nasıl anında iletme bildirimleri gönderileceğini öğrenmek için aşağıdaki öğreticiye ilerleyin: