ユニバーサル Windows プラットフォーム アプリでの Notification Hubs の使用Get started with Notification Hubs for Universal Windows Platform apps

概要Overview

この記事では、Azure Notification Hubs を使用してユニバーサル Windows プラットフォーム (UWP) アプリにプッシュ通知を送信する方法について説明します。This article shows you how to use Azure Notification Hubs to send push notifications to a Universal Windows Platform (UWP) app.

この記事では、Windows プッシュ通知サービス (WNS) を使用してプッシュ通知を受信する、空の Windows ストア アプリを作成します。In this article, you create a blank Windows Store app that receives push notifications by using the Windows Push Notification Service (WNS). 完了すると、通知ハブを使用して、アプリが実行されているすべてのデバイスにプッシュ通知をブロードキャストできます。When you're finished, you can use your notification hub to broadcast push notifications to all devices that are running your app.

開始する前にBefore you begin

この記事の目的は、できるだけ迅速に Azure Notification Hubs の使用を開始できるようにすることです。The goal of this article is to help you get started using Azure Notification Hubs as quickly as possible. この記事では、Notification Hubs の基本的な概念に焦点を当てた、非常に単純なブロードキャスト シナリオについて説明します。The article presents a very simple broadcast scenario that focuses on the basic concepts of Notification Hubs.

既に Notification Hubs の使用に慣れている場合は、左側のナビゲーションから別のトピックを選択できます。または、「次のステップ」で関連する記事に移動できます。If you are already familiar with Notification Hubs, you might want to select another topic from the left navigation or go to the relevant articles in the "Next steps" section.

Microsoft は、お客様からのフィードバックを真剣に受け止めています。We take your feedback seriously. このトピックを完了するうえで問題がある場合、またはこのコンテンツを改善するためのご提案がある場合は、記事の最後でフィードバックをご送信ください。If you have any difficulty completing this topic, or if you have recommendations for improving this content, we invite you to provide feedback at the end of the article.

このチュートリアルの完成したコードについては、GitHub を参照してください。You can find the completed code for this tutorial on GitHub.

前提条件Prerequisites

このチュートリアルには、次のものが必要です。This tutorial requires the following:

このチュートリアルを完了することは、UWP アプリに関する他のすべての Notification Hubs チュートリアルを行うための前提条件になっています。Completing this tutorial is a prerequisite for all other Notification Hubs tutorials for UWP apps.

アプリケーションを Windows ストアに登録するRegister your app for the Windows Store

UWP アプリにプッシュ通知を送信するには、アプリを Windows ストアに関連付けます。To send push notifications to UWP apps, associate your app to the Windows Store. 次に、WNS に統合するために通知ハブを構成します。Then, configure your notification hub to integrate with WNS.

  1. アプリをまだ登録していない場合は、Windows デベロッパー センターに移動し、Microsoft アカウントでサインインしてから、[新しいアプリの作成] を選択します。If you have not already registered your app, navigate to the Windows Dev Center, sign in with your Microsoft account, and then select Create a new app.

  2. アプリの名前を入力し、[アプリ名を予約] を選択します。Type a name for your app, and then select Reserve app name. これでアプリの新しい Windows ストア登録が作成されます。Doing so creates a new Windows Store registration for your app.

  3. Visual Studio で、UWP の [空のアプリケーション] テンプレートを使用して新しい Visual C# ストア アプリ プロジェクトを作成し、[OK] を選択します。In Visual Studio, create a new Visual C# Store apps project by using the UWP Blank App template, and then select OK.

  4. ターゲットとプラットフォームの最小バージョンの既定値をそのまま使用します。Accept the defaults for the target and minimum platform versions.

  5. ソリューション エクスプローラーで Windows ストア アプリ プロジェクトを右クリックし、[ストア][アプリケーションをストアと関連付ける] の順に選択します。In Solution Explorer, right-click the Windows Store app project, select Store, and then select Associate App with the Store.
    アプリケーションを Windows ストアと関連付ける ウィザードが表示されます。The Associate Your App with the Windows Store wizard appears.

  6. ウィザードで、自分の Microsoft アカウントでサインインします。In the wizard, sign in with your Microsoft account.

  7. 手順 2. で登録したアプリを選択し、[次へ][関連付け] の順に選択します。Select the app that you registered in step 2, select Next, and then select Associate. この操作により、必要な Windows ストア登録情報がアプリケーション マニフェストに追加されます。Doing so adds the required Windows Store registration information to the application manifest.

  8. Windows デベロッパー センターで新しいアプリのページに戻り、[サービス][プッシュ通知][WNS/MPNS] の順に選択します。Back on the Windows Dev Center page for your new app, select Services, select Push notifications, and then select WNS/MPNS.

  9. [新しい通知] を選択します。Select New Notification.

  10. [Blank (Toast)](空白 (トースト)) テンプレートを選択して、[OK] を選択します。Select Blank (Toast) template, and then select OK.

  11. 通知の名前とビジュアル コンテキスト メッセージを入力してから、[下書きとして保存] を選択します。Enter a notification Name and Visual Context message, and then select Save as draft.

  12. アプリケーション登録ポータルに移動して、サインインします。Go to the Application Registration Portal and sign in.

  13. アプリケーション名を選択します。Select your application name. Windows ストア プラットフォームの設定で、アプリケーション シークレット パスワードとパッケージ セキュリティ ID (SID) をメモします。In Windows Store platform settings, note the Application Secret password and the Package security identifier (SID).

    警告

    アプリケーション シークレットおよびパッケージ SID は、重要なセキュリティ資格情報です。The application secret and package SID are important security credentials. これらの値は、他のユーザーと共有したり、アプリケーションで配信したりしないでください。Do not share these values with anyone or distribute them with your app.

通知ハブを構成するConfigure your notification hub

  1. Azure Portal にサインインします。Sign in to the Azure portal.

  2. [新規] > [Web + モバイル] > [Notification Hub] の順に選択します。Select New > Web + Mobile > Notification Hub.

    Azure Portal - 通知ハブを作成

  3. [Notification Hub] ボックスに一意の名前を入力します。In the Notification Hub box, type a unique name. リージョンサブスクリプションリソース グループを選択します (既にある場合)。Select your Region, Subscription, and Resource Group (if you have one already).

    まだ Service Bus 名前空間を用意していない場合、ハブ名に基づいて作成される既定の名前を使用できます (その名前空間名が使用できる場合)。If you don't already have a service bus namespace, you can use the default name, which is created based on the hub name (if the namespace name is available).

    ハブを作成する Service Bus 名前空間を既に用意してある場合は、次の手順に従います。If you already have a service bus namespace that you want to create the hub in, follow these steps

    a.a. [名前空間] 領域で、[既存項目の選択] リンクを選択します。In the Namespace area, select the Select Existing link.

    b.b. [作成]を選択します。Select Create.

    Azure Portal - 通知ハブのプロパティを設定

  4. 名前空間と通知ハブを作成したら、[すべてのリソース] を選択して開き、作成した通知ハブを一覧から選択します。After you've created the namespace and notification hub, open it by selecting All resources and then select the created notification hub from the list.

    Azure Portal - 通知ハブのポータル ページ

  5. リストから [アクセス ポリシー] を選択します。Select Access Policies from the list. 使用可能な 2 つの接続文字列を書き留めてください。Note the two connection strings that are available to you. これらの接続文字列は、後でプッシュ通知を処理するために必要になります。You need them to handle push notifications later.

    重要

    DefaultFullSharedAccessSignature はアプリケーションで使用しないでください。Do NOT use the DefaultFullSharedAccessSignature in your application. これはバックエンドのみで使用します。This is meant to be used in your back-end only.

    Azure Portal - 通知ハブの接続文字列

  1. [Notification Services][Windows (WNS)] を選択し、アプリケーション シークレット パスワードを [セキュリティ キー] ボックスに入力します。Under Notification Services, select Windows (WNS), and then enter the application secret password in the Security Key box. 前のセクションで WNS から取得した値を [パッケージ SID] ボックスに入力し、[保存] を選択します。In the Package SID box, enter the value that you obtained from WNS in the previous section, and then select Save.

[パッケージ SID] ボックスと [セキュリティ キー] ボックス

これで、通知ハブが WNS と連携するように構成されました。Your notification hub is now configured to work with WNS. 接続文字列を使用してアプリを登録し、通知を送信できます。You have the connection strings to register your app and send notifications.

通知ハブにアプリケーションを接続するConnect your app to the notification hub

  1. Visual Studio でソリューションを右クリックし、[NuGet パッケージの管理] を選択します。In Visual Studio, right-click the solution, and then select Manage NuGet Packages.
    [NuGet パッケージの管理] ウィンドウが開きます。The Manage NuGet Packages window opens.

  2. 検索ボックスに「WindowsAzure.Messaging.Managed」と入力し、[インストール] を選択して、使用条件に同意します。In the search box, enter WindowsAzure.Messaging.Managed, select Install, and accept the terms of use.

    [NuGet パッケージの管理] ウィンドウ

    WindowsAzure.Messaging.Managed NuGet パッケージを使用して、Windows の Azure メッセージング ライブラリに参照がダウンロードされ、インストールと追加が行われます。This action downloads, installs, and adds a reference to the Azure messaging library for Windows by using the WindowsAzure.Messaging.Managed NuGet package.

  3. App.xaml.cs プロジェクト ファイルを開き、次の using ステートメントを追加します。Open the App.xaml.cs project file, and add the following using statements:

     using Windows.Networking.PushNotifications;
     using Microsoft.WindowsAzure.Messaging;
     using Windows.UI.Popups;
    
  4. さらに App.xaml.cs で、次の InitNotificationsAsync メソッドの定義を App クラスに追加します。In App.xaml.cs, also add to the App class the following InitNotificationsAsync method definition:

     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 が通知ハブに登録されます。This code retrieves the channel URI for the app from WNS, and then registers that channel URI with your notification hub.

    注意

    • ハブ名プレースホルダーは、Azure Portal に表示される通知ハブの名前に置き換えてください。Replace the hub name placeholder with the name of the notification hub that appears in the Azure portal.
    • さらに、接続文字列プレースホルダーを、前のセクションで通知ハブの [アクセス ポリシー] ページから取得した DefaultListenSharedAccessSignature 接続文字列に置き換えてください。Also replace the connection string placeholder with the DefaultListenSharedAccessSignature connection string that you obtained from the Access Polices page of your notification hub in a previous section.
  5. App.xaml.cs 内で、OnLaunched イベント ハンドラーの先頭に、次に示す新しい InitNotificationsAsync メソッドへの呼び出しを追加します。At the top of the OnLaunched event handler in App.xaml.cs, add the following call to the new InitNotificationsAsync method:

     InitNotificationsAsync();
    

    これにより、アプリケーションが起動するたびに必ずチャネル URI が通知ハブに登録されます。This action guarantees that the channel URI is registered in your notification hub each time the application is launched.

  6. アプリを実行するには、F5 キーを押します。To run the app, select the F5 key. 登録キーを示すダイアログ ボックスが表示されます。A dialog box that contains the registration key is displayed.

これで、アプリケーションがトースト通知を受信する準備が整いました。Your app is now ready to receive toast notifications.

通知を送信するSend notifications

Azure Portal で通知を送信することで、通知の受信をすばやくテストできます。You can quickly test receiving notifications in your app by sending notifications in the Azure portal. 次の画像に示すように、通知ハブの [テスト送信] ボタンを使用します。Use the Test Send button on the notification hub, as shown in the following image:

[テスト送信] ウィンドウ

プッシュ通知は通常、互換性のあるライブラリを使用して Mobile Services などのバックエンド サービスや ASP.NET に送信されます。Push notifications are normally sent in a back-end service like Mobile Services or ASP.NET by using a compatible library. ライブラリがバックエンドで利用できない場合、REST API を直接使用して通知メッセージを送信することもできます。If a library is not available for your back end, you can also send notification messages by using the REST API directly.

このチュートリアルでは、バックエンド サービスを使用せず、単にコンソール アプリケーションの通知ハブに .NET SDK を使用した通知を送信することで、クライアント アプリをテストする方法を説明します。This tutorial demonstrates how to test your client app simply by sending notifications that use the .NET SDK for notification hubs in a console application instead of a back-end service. ASP.NET バックエンドから通知を送信するには、次のステップとして Notification Hubs を使用したユーザーへのプッシュ通知に関するチュートリアルを参照することをお勧めします。We recommend the [Use Notification Hubs to push notifications to users] tutorial as the next step for sending notifications from an ASP.NET back end. ただし、通知の送信には次の方法も使用できます。However, you can send notifications by using the following approaches:

次の手順Next steps

この簡単な例では、ポータルまたはコンソール アプリを使用して、ブロードキャスト通知をすべての Windows デバイスに送信しました。In this simple example, you sent broadcast notifications to all your Windows devices by using the portal or a console app. 次のステップとして、Notification Hubs を使用したユーザーへのプッシュ通知に関するチュートリアルをお勧めします。For your next step, we recommend the [Use Notification Hubs to push notifications to users] tutorial. このチュートリアルでは、特定のユーザーに対してタグを使用して ASP.NET バックエンドから通知を送信する方法について説明しています。It demonstrates how to send notifications from an ASP.NET back end by using tags to target specific users.

対象グループごとにユーザーを区分する場合は、「 Notification Hubs を使用したニュース速報の送信」を参照してください。If you want to segment your users by interest groups, see [Use Notification Hubs to send breaking news].

Notification Hubs の全般的な情報については、Notification Hubs の概要に関するページを参照してください。For more general information about Notification Hubs, see Notification Hubs guidance.