エクスポート (0) 印刷
すべて展開
情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

Windows Phone 8 のプッシュ通知の送信

2014/06/18

対象: Windows Phone 8 および Windows Phone Silverlight 8.1 | Windows Phone OS 7.1

Windows Phone クライアント アプリで通知に登録すると、そのアプリに通知を送信できます。通常、この処理は通知の送信先となる URI のコレクションを保持する Web サービスを使用して実行しますが、Microsoft Push Notification Service にメッセージを送信できるアプリを使用しても実行できます。Windows Phone の Microsoft Push Notification Service は、サードパーティの開発者に、クラウド サービスから Windows Phone アプリに効率的にデータを送信するチャネルを提供する、非同期の最適なサービスです。プッシュ通知の送信方法を示すサンプル コードについては、「Windows Phone 8 用のトースト通知を送受信する方法」、「Windows Phone 8 用のタイル通知を送受信する方法」、「Windows Phone 8 用の Raw 通知を送受信する方法」を参照してください。

重要:重要:

プッシュ通知サービスに通知を送信する認証済み Web サービスを設定することをお勧めします。このようにすると、HTTPS インターフェイス経由で通信が行われるので、セキュリティが向上します。認証済み Web サービスには、1 日に送信できるプッシュ通知の数に対する制限はありません。一方、認証されていない Web サービスでは、1 サブスクリプションでの 1 日のプッシュ通知の数が 500 に制限されます。詳細については、「Windows Phone 8 のプッシュ通知を送信するように認証済み Web サービスを設定する」を参照してください。

プッシュ通知を送信するには、Web サービスまたはアプリで次のことを行う必要があります。

  • 通知の送信先となる各 Windows Phone デバイス用に POST メッセージを作成します。

  • 適切な通知の種類に合わせたメッセージを作成します。以下のセクションでは、トースト通知、タイル通知、および Raw 通知メッセージ用のメッセージ形式について説明します。一度にサーバーにポストできる通知の種類 (トースト、タイル、または Raw) は 1 つだけです。同じクライアント デバイスに対して同時に複数の通知の種類を送信する場合は、通知の種類ごとに別個の POST メッセージを作成する必要があります。

  • Windows Phone OS 7.0 で利用できないプロパティ (具体的には、トースト通知の場合は Parameter プロパティ、タイル通知の場合は BackTitleBackBackgroundImageBackContent、またはタイル ID プロパティ) を使用しないことで、Windows Phone OS 7.0 クライアントに対してメッセージを適切にダウングレードします。デバイスの URI 情報を Web サービスに登録するのと同時に、デバイスの OS のバージョン情報を送信することをお勧めします。

  • プッシュ通知サービスにメッセージをポストします。

  • プッシュ通知サービスから応答を取得し、適切に対応します。

メモメモ:

アプリのタイル イメージを更新するためにリモート URI を使用することを指定した場合、ユーザーがアプリのタイル サイズを変更すると、Windows Phone によってタイル イメージのダウンロードと更新の処理が開始されます。Windows Phone によるタイル イメージのローカル リソースへの更新処理中に、リモート URI を使用してタイル イメージを更新する要求が行われた場合、ローカル リソースではなくリモート リソースがタイル イメージとして表示されます。

このトピックは、次のセクションで構成されています。

カスタム HTTP ヘッダーには通知メッセージ ID、バッチ処理間隔、送信されるプッシュ通知の種類、および通知チャネル URI を含めることができます。

MessageID は応答に関連付けられた通知メッセージ ID です。このヘッダーが POST 要求に追加されていない場合、プッシュ通知サービスは応答でこのヘッダーを省略します。 ヘッダー仕様は "X-MessageID"":"1*MessageIDValue MessageIDValue = STRING (uuid) です。

たとえば、X-MessageID: UUID のように指定します。

NotificationClass は、プッシュ通知サービスからアプリにプッシュ通知が送信されるタイミングを示すバッチ処理間隔です。このヘッダーでの有効な値については、トースト通知、タイル通知、および Raw 通知のセクションの表を参照してください。このヘッダーが存在しない場合、メッセージはプッシュ通知サービスによってすぐに配信されます。ヘッダー仕様は ”X-NotificationClass””:”1*NotificationClassValue NotificationClassValue = DIGIT です。

たとえば、X-NotificationClass:1 のように指定します。

Notification Type は、送信されるプッシュ通知の種類です。有効なオプションは Tile、toast、および raw です。このヘッダーが存在しない場合、プッシュ通知は Raw 通知として処理されます。詳細については、「Windows Phone 8 のプッシュ通知」を参照してください。 ヘッダー仕様は “X-WindowsPhone-Target””:”1*NotificationTypeValue NotificationTypeValue = STRING です。

たとえば、X-WindowsPhone-Target:toast のように指定します。

次の文字は、タイルまたはトースト ペイロードで使用するときに、表に示すようにエンコードする必要があります。

文字

XML エンコード

<

&lt;

>

&gt;

&

&amp;

&apos;

&quot;

ここでは、トーストまたはタイルにプッシュ通知を送信するために必要なペイロード情報について説明します。

トースト通知ペイロード

コードまたは XML を使用してトースト通知ペイロードを構成する方法、およびアプリにディープ リンクするペイロードを構成する方法については、「Windows Phone 8 のトースト」を参照してください。

トースト通知ペイロードの HTTP ヘッダー

トースト通知を作成するときは、次の HTTP ヘッダーを使用します。

sendNotificationRequest.ContentType = "text/xml";
sendNotificationRequest.Headers.Add("X-WindowsPhone-Target", "toast");
sendNotificationRequest.Headers.Add("X-NotificationClass", "[batching interval]");

トースト通知のバッチ処理間隔

次の表は、バッチ処理間隔に使用できる値の説明です。

配信間隔

2

即時に配信します。

12

450 秒以内に配信しました。

22

900 秒以内に配信しました。

タイル通知ペイロード

Windows Phone OS 7.1 でタイル通知ペイロードを構成する方法、およびタイルをクリアおよび削除する方法については、「Windows Phone OS 7.1 のタイルを作成、削除、および更新する方法」を参照してください。Windows Phone 8 アプリの場合、タイル通知ペイロードを構成する方法については、「Windows Phone 8 用のフリップ タイル テンプレート」、「Windows Phone 8 用のアイコン タイル テンプレート」、「Windows Phone 8 用のサイクル タイル テンプレート」の各タイル テンプレート トピックを参照してください。

タイル通知ペイロードの HTTP ヘッダー

タイル通知を送信するときは、次の HTTP ヘッダーを使用します。

sendNotificationRequest.ContentType = "text/xml";
sendNotificationRequest.Headers.Add("X-WindowsPhone-Target", "token");
sendNotificationRequest.Headers.Add("X-NotificationClass", "[batching interval]"); 

タイル通知のバッチ処理間隔

次の表は、バッチ処理間隔に使用できる値の説明です。

配信間隔

1

即時に配信します。

11

450 秒以内に配信しました。

21

900 秒以内に配信しました。

セカンダリ タイルへのプッシュ通知の送信

アプリにセカンダリ タイルがある場合は、更新するタイルを Id 属性で指定します。アプリの既定のタイルを更新する場合は、Tile 要素の Id 属性を省略できます。

次のコードは、Tile 要素の Id 属性の例を示しています。この属性には、セカンダリ タイルの正確なナビゲーション URI を含める必要があります。


string tileMessage = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
"<wp:Notification xmlns:wp=\"WPNotification\">" +
  "<wp:Tile Id=\"/SecondaryTile.xaml?DefaultTitle=FromTile\">" +
…
  "</wp:Tile> " +
"</wp:Notification>";

Raw タイル通知ペイロード

Raw タイル通知を送信するときは、次の HTTP ヘッダーを使用します。

sendNotificationRequest.ContentType = "text/xml";
sendNotificationRequest.Headers.Add("X-NotificationClass", "[batching interval]"); 

次の表は、バッチ処理間隔に使用できる値の説明です。

配信間隔

3

即時に配信します。

13

450 秒以内に配信しました。

23

900 秒以内に配信しました。

ペイロードの構造はアプリによって定義されます。次に例を示します。


string tileMessage = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
    "<root>" +
        "<Value1>[UserValue1]<Value1>" +
        "<Value2>[UserValue2]<Value2>" +
    "</root>"

バイト ストリームを渡すこともできます。次に例を示します。

new byte[] {0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08};

表示:
© 2014 Microsoft