ルーティングとタグ式
タグ式を使用することで、通知ハブを通じてプッシュ通知を送信する際に、デバイスの特定のセット、より具体的には登録を対象にできるようになります。
特定の登録を対象にする
特定の登録を対象にする唯一の方法は、登録にタグを関連付け、そのタグを対象とすることです。 「 登録管理」で説明したように、プッシュ通知を受け取るには、アプリケーションが通知ハブにデバイス ハンドルを登録する必要があります。 通知ハブに登録が作成されたら、アプリケーションのバックエンドが登録にプッシュ通知を送信できます。
アプリケーションのバックエンドは、次のように、特定の通知を対象とする登録を選択できます。
ブロードキャスト:通知ハブのすべての登録が通知を受信します。
タグ:指定したタグを含むすべての登録が通知を受信します。
タグ式:タグのセットが指定した式と一致するすべての登録が、通知を受信します。
注意
プラットフォーム固有のペイロード (たとえば、Windows ストア固有の通知) を送信する場合、その特定のプラットフォームの登録のみが通知を受け取ります。 テンプレート通知を送信すると、テンプレートを指定する登録のみが対象になります。 詳細については、「 登録管理」を参照してください。
Tags
タグは、最大 120 文字の任意の文字列です。英数字と一部の英数字以外の文字 ("_"、"@"、"#"、"."、":"、"-") を使用できます。 ‘_’, ‘@’, ‘#’, ‘.’, ‘:’, ‘-’.次の例は、特定の音楽グループに関するトースト通知を受信するアプリケーションを示します。 このシナリオで通知をルーティングする簡単な方法は、次の図のようにさまざまなバンドを表すタグを含む登録にラベルを設定することです。
この図で、[Beatles] というタグが付いたメッセージは、タグ [Beatles] で登録されたタブレットにのみ到達します。
タグの登録の作成の詳細については、「登録管理」を参照してください。
SDK の Microsoft.ServiceBus.Notifications.NotificationHubClient クラスの send notifications メソッドを使用して、タグに通知を送信できます。 Node.jsまたは プッシュ通知 REST API を使用することもできます。
次の例に注意してください。
await hub.SendWindowsNativeNotificationAsync(wnsToast, "tag");
notificationHubService.wns.sendToastText01('tag', {
text1: 'Hello World!'
}, callback);
タグは複数のアプリケーション固有概念を参照できるため、事前にプロビジョニングする必要はありません。 たとえば、このサンプル アプリケーションのユーザーがバンドについてコメントでき、自分のお気に入りのバンドのコメントだけでなく、自分がコメントしていないバンドに関する友人のすべてのコメントについてもトーストを受信したいとします。 以下の図はこのシナリオの例を示したものです。
この図で、Alice は Beatles の近況に関心があり、Bob は Wailers の近況に関心があります。 Bob は Charlie のコメントにも関心があり、Charlie は Wailers に関心があります。 Beatles に関する Charlie のコメントに関する通知が送信されると、Alice と Bob の両方に配信されます。
重要
タグ (たとえば、"band_Beatles" や "follows_Charlie" など) 内では複数の関心をエンコードできますが、タグは単純な文字列であり、値を持つプロパティではありません。 登録は、特定のタグの有無のみを照合します。
関心のグループに送信するためのタグの使用方法の詳しい手順を示したチュートリアルは、「 ニュース速報」を参照してください。
注意
前の例では、2 つの通知ではなく 2 つのタグ (タグの配列を提供するか、OR を含むタグ式を使用します) に 1 つの通知を送信する必要があります。 個々のタグに 2 つの通知を送信すると、タグ式を使用するときとは異なり、両方のタグを含む登録に対して重複が発生します。
ターゲット ユーザーにタグを使用する
タグを使用するもう 1 つの方法は、特定のユーザーのすべてのデバイスを識別する方法です。 登録は、次の図のように、ユーザー ID を含むタグにタグ付けすることができます。
この図で、[uid:Alice] のタグが付いたメッセージは、[uid:Alice] のタグが付いたすべての登録、つまり Alice のすべてのデバイスに到達します。
タグ式
1 つのタグではなく、タグのブール式で識別される登録のセットが通知の対象になる場合もあります。
レッド ソックスとカーディナルズの試合に関してボストンのすべてのユーザーに通知を送信するスポーツ アプリケーションを考えてみてください。 クライアントのアプリケーションでチームと場所の関心に関するタグを登録すると、レッド ソックスまたはカーディナルズに関心のあるボストンのすべてのユーザーが通知の対象になります。 この条件は、次のブール式で表すことができます。
(follows_RedSox || follows_Cardinals) && location_Boston
タグ式には、AND ()、OR (||)、NOT (&&!) など、すべてのブール演算子を含めることができます。 かっこを使用することもできます。 タグ式に OR のみが含まれる場合、タグの数は 20 個に制限されます。それ以外の場合は、6 個のタグに制限されます。
SDK の Microsoft.ServiceBus.Notifications.NotificationHubClient クラスの send notifications メソッドを使用して、タグ式に通知を送信できます。 Node.jsまたは プッシュ通知 REST API を使用することもできます。 次の例に注意してください。
await hub.SendWindowsNativeNotificationAsync(wnsToast, "(tagA && !tagB)");
notificationHubService.wns.sendToastText01('(tagA && !tagB)', {
text1: 'Hello World!'
}, callback);