자습서: Azure Notification Hubs를 사용하여 유니버설 Windows 플랫폼 앱에 알림 보내기

이 자습서에서는 알림 허브를 만들어 UWP(유니버설 Windows 플랫폼) 앱에 푸시 알림을 보냅니다. WNS(Windows 푸시 알림 서비스)를 사용하여 푸시 알림을 받는 새 Windows 스토어 앱을 만듭니다. 그런 다음, 알림 허브를 사용하여 앱을 실행하는 모든 디바이스로 푸시 알림을 브로드캐스트합니다.

참고

GitHub에서 이 자습서에 대해 완료된 코드를 찾을 수 있습니다.

다음 단계를 수행하세요.

  • Windows 스토어에서 앱 만들기
  • 알림 허브 만들기
  • 샘플 Windows 앱 만들기
  • 테스트 알림 보내기

사전 요구 사항

  • Azure 구독. Azure 구독이 아직 없는 경우 시작하기 전에 Azure 체험 계정을 만듭니다.
  • Microsoft Visual Studio 2017 이상. 이 자습서의 예제에서는 Visual Studio 2019를 사용합니다.
  • UWP 앱 개발 도구 설치
  • 활성 Windows 스토어 계정
  • 앱 및 기타 발신자에서 알림 가져오기 설정이 활성화되어 있는지 확인합니다.
    • 컴퓨터에서 설정 창을 시작합니다.
    • 시스템 타일을 선택합니다.
    • 왼쪽 메뉴에서 알림 & 작업을 선택합니다.
    • 앱 및 기타 발신자에서 알림 가져오기 설정이 활성화되어 있는지 확인합니다. 활성화되어 있지 않으면 활성화합니다.

이 자습서를 완료해야 다른 모든 UWP 앱용 Notification Hubs 자습서를 진행할 수 있습니다.

Windows 스토어에서 앱 만들기

참고

MPNS(Microsoft 푸시 알림 서비스)는 더 이상 사용되지 않으며 지원하지 않습니다.

UWP 앱으로 푸시 알림을 보내려면 앱을 Windows 스토어와 연결합니다. 그런 다음 WNS와 통합되도록 알림 허브를 구성합니다.

  1. Windows 개발자 센터로 이동하여 Microsoft 계정으로 로그인한 다음, 새 앱 만들기를 선택합니다.

    New app button

  2. 앱의 이름을 입력한 다음, 제품 이름 예약을 선택합니다. 이렇게 하면 앱을 새로 Windows 스토어에 등록하게 됩니다.

    Store app name

  3. 제품 관리를 확장한 다음, 제품 ID를 선택합니다. 패키지 SID, 패키지/ID/이름, 패키지/ID/게시자패키지/속성/PublisherDisplayName 값을 기록해 둡시다.

    Partner center apps

  4. 제품 관리에서 WNS/MPNS를 선택한 다음, 앱 등록 포털을 선택합니다. Microsoft 계정으로 로그인 애플리케이션 등록 페이지가 새 탭에서 열립니다.

    WNS page

  5. 기본 정보에서 클라이언트 자격 증명: 인증서 또는 비밀 추가를 선택합니다.

    Notification Hub settings on Azure portal

  6. 인증서 & 비밀 페이지의 클라이언트 암호에서 새 클라이언트 암호를 선택합니다. 클라이언트 암호(애플리케이션 암호라고도 함)을 만든 후 페이지를 나가기 전에 기록해 둡니다.

    경고

    클라이언트 암호(애플리케이션 암호) 값은 만든 직후에만 볼 수 있습니다. 페이지를 나가기 전에 비밀을 저장해야 합니다.

    Client secret on portal

    경고

    애플리케이션 암호와 패키지 SID는 중요한 보안 자격 증명입니다. 다른 사람과 공유하지 말고 앱과 함께 분산하지 마세요.

알림 허브 만들기

  1. Azure Portal에 로그인합니다.

  2. 왼쪽 메뉴에서 모든 서비스를 선택하고, 모바일 섹션에서 Notification Hubs를 선택합니다. 서비스 이름 옆의 별표 아이콘을 선택하여 서비스를 왼쪽 메뉴의 즐겨찾기 섹션에 추가합니다. Notification Hubs즐겨찾기에 추가한 후 왼쪽 메뉴에서 선택합니다.

    Azure portal - select Notification Hubs

  3. Notification Hubs 페이지의 도구 모음에서 만들기를 선택합니다.

    Notification Hubs - Add toolbar button

  4. Notification Hub 페이지의 기본 탭에서 다음 단계를 수행합니다.

    1. 구독에서 사용하려는 Azure 구독 이름을 선택한 다음, 기존 리소스 그룹을 선택하거나 새 리소스 그룹을 만듭니다.

    2. 네임스페이스 세부 정보에 새 네임스페이스의 고유한 이름을 입력합니다.

    3. 네임스페이스에 알림 허브가 하나 이상 포함되어 있으므로 Notification Hub 세부 정보에 허브 이름을 입력합니다. 또는 드롭다운에서 기존 네임스페이스를 선택합니다.

    4. 위치 드롭다운 목록 상자에서 값을 선택합니다. 이 값은 허브를 만들려는 위치를 지정합니다.

    5. 만들기를 선택합니다.

      Azure portal - set notification hub properties

  5. 알림(벨 아이콘)을 선택하고, 리소스로 이동을 선택합니다. Notification Hubs 페이지의 목록을 새로 고치고 허브를 선택할 수도 있습니다.

    Azure portal - go to resource

  6. 목록에서 액세스 정책을 선택합니다. 사용할 수 있는 두 가지 연결 문자열을 적어 둡니다. 나중에 푸시 알림을 처리하는 데 필요합니다.

    중요

    애플리케이션에서 DefaultFullSharedAccessSignature 정책을 사용하지 마세요. 이는 백 엔드에서만 사용할 수 있습니다.

    Azure portal - notification hub connection strings

허브에 대한 WNS 설정을 구성합니다.

  1. 알림 설정 범주에서 Windows(WNS) 를 선택합니다.

  2. 이전 섹션에서 적어둔 패키지 SID(예: “ms-app://<Your Package SID>”) 및 보안 키(애플리케이션 암호)에 대한 값을 입력합니다.

  3. 도구 모음에서 저장을 클릭합니다.

    The Package SID and Security Key boxes

이제 알림 허브가 WNS와 작동하도록 구성됩니다. 앱을 등록하고 알림을 보내기 위한 연결 문자열이 있습니다.

샘플 Windows 앱 만들기

  1. Visual Studio에서 파일 메뉴를 열고 새로 만들기를 선택한 다음, 프로젝트를 선택합니다.

  2. 새 프로젝트 만들기 대화 상자에서 다음 단계를 완료합니다.

    1. 위쪽의 검색 상자에서 Windows 유니버설을 입력합니다.

    2. 검색 결과에서 비어 있는 앱(유니버설 Windows) , 다음을 차례로 선택합니다.

      New Project dialog

    3. 새 프로젝트 구성 대화 상자에서 프로젝트 파일의 프로젝트 이름위치를 입력합니다.

    4. 만들기를 선택합니다.

  3. 대상최소 플랫폼 버전에 대한 기본값을 그대로 적용하고, 확인을 선택합니다.

  4. 솔루션 탐색기에서 마우스 오른쪽 단추로 Windows 스토어 앱 프로젝트를 클릭하고, 게시를 선택한 다음, 애플리케이션을 스토어에 연결을 선택합니다. 응용 프로그램을 Windows 스토어에 연결 마법사가 나타납니다.

  5. 마법사에서 Microsoft 계정으로 로그인합니다.

  6. 2단계에서 등록한 앱을 선택하고 다음을 선택한 후 연결을 선택합니다. 이렇게 하면 필요한 Windows 스토어 등록 정보가 애플리케이션 매니페스트에 추가됩니다.

  7. Visual Studio에서 솔루션을 마우스 오른쪽 단추로 클릭한 후 NuGet 패키지 관리를 선택합니다. NuGet 패키지 관리 창이 열립니다.

  8. 검색 상자에 WindowsAzure.Messaging.Managed를 입력하고 설치를 선택한 다음, 사용 약관에 동의합니다.

    The Manage NuGet Packages window

    이 작업은 Microsoft.Azure.NotificationHubs NuGet 패키지를 사용하여 Windows용 Azure Notification Hubs 라이브러리를 다운로드하고, 설치하고, 참조를 추가합니다.

  9. App.xaml.cs 프로젝트 파일을 열고 다음 명령문을 추가합니다.

    using Windows.Networking.PushNotifications;
    using Microsoft.WindowsAzure.Messaging;
    using Windows.UI.Popups;
    
  10. 프로젝트의 App.xaml.cs 파일에서 App 클래스를 찾아서 다음 InitNotificationsAsync 메서드 정의를 추가합니다. <your hub name>을 Azure Portal에서 만든 알림 허브의 이름으로 바꾸고, 알림 허브의 액세스 정책 페이지에서 <Your DefaultListenSharedAccessSignature connection string>DefaultListenSharedAccessSignature 연결 문자열로 바꿉니다.

    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();
        }
    }
    

    이 코드는 WNS에서 앱의 채널 URI를 검색한 후 해당 채널 URI를 알림 허브에 등록합니다.

    참고

    hub name 자리 표시자를 Azure Portal에 표시되는 알림 허브의 이름으로 바꿉니다. 또한 연결 문자열 자리 표시자를 이전 섹션에 있는 알림 허브의 액세스 정책 페이지에서 가져온 DefaultListenSharedAccessSignature 연결 문자열로 바꿉니다.

  11. App.xaml.csOnLaunched 이벤트 처리기 맨 위에서 다음 호출을 새 InitNotificationsAsync 메서드에 추가합니다.

    InitNotificationsAsync();
    

    이 작업은 애플리케이션이 시작될 때마다 채널 URI가 알림 허브에 등록되도록 보장합니다.

  12. Package.appxmanifest를 마우스 오른쪽 단추로 클릭하고 코드 보기(F7)를 선택합니다. <Identity .../>를 찾고 이름 값을 패키지/ID/이름으로 바꾸고, 게시자 값을 이전에 만든 앱의 패키지/ID/게시자 값으로 바꿉니다.

  13. 앱을 실행하려면 키보드의 F5 키를 누릅니다. 등록 키를 포함하는 대화 상자가 표시됩니다. 대화 상자를 닫으려면 확인을 클릭합니다.

    Registration successful

이제 앱에서 알림을 받을 수 있습니다.

테스트 알림 보내기

Azure 포털에서 알림을 보내어 앱에서 알림 받기를 신속하게 테스트할 수 있습니다.

  1. Azure Portal에서 개요 탭으로 전환하고, 도구 모음에서 테스트 보내기를 선택합니다.

    Test Send button

  2. 테스트 보내기 창에서 다음 작업을 수행합니다.

    1. 플랫폼에 대해 Windows를 선택합니다.

    2. 알림 유형에 대해 알림을 선택합니다.

    3. 보내기를 선택합니다.

      The Test Send pane

  3. 창의 맨 아래에 있는 결과 목록에서 보내기 작업의 결과가 표시됩니다. 경고 메시지도 표시됩니다.

    Result of Send operation

  4. 바탕 화면에 알림 메시지: 테스트 메시지가 표시됩니다.

    Notification message

다음 단계

포털 또는 콘솔 앱을 사용하여 모든 Windows 디바이스로 브로드캐스트 알림을 보냈습니다. 특정 디바이스로 알림을 푸시하는 방법을 알아보려면 다음 자습서를 계속 진행합니다.