commentプッシュの概要タイルの更新をプッシュ更新することで任意のタイミングでサーバからアプリケーションのタイルを更新することができます。Serviceを利用するなど、これまでのタイル更新方法より少し複雑です。Serviceなどを利用すると簡単に行うことができますが、今回は通常の方法で、サーバーサイドはASP.NETではなくPHPで更新する方法を紹介します。Serviceと登場人物が多いためMSDNのドキュメントも読みにくくなってしまっています。Serverを用いた通知を行う仕組みは以下のような図で説明されます。紫のWindowsと書かれた部分はあなたが作成するWindowsストアアプリケーションをさします。プッシュ通知を受け取ってタイルを更新するアプリケーションです。Platformとは通知を受け取るAPIのことです。Serviceと書かれた部分はクラウドと書いてありますが、普通のレンタルサーバーで構いません。(サーバーサイドのプログラムを書く必要はありますが言語はRubyでもPerlでもPHPでも構いません)今回はWebサイト制作でよく使われるPHPを用いることにします。Service)です。プッシュ通知サービスを利用することになります。プッシュ更新の仕組みプッシュ更新は以下のような流れで実装します。1.アプリ名をWindowsストアで予約して、Push通知に必要なIDとキーを取得する(アプリは審査を通す必要はなく、アプリ名の予約だけかまいません)2.サーバーサイド(PHP)で1で取得したIDとキーを用いてトークンを取得する3.Windowsストアアプリを作成し、1で予約した名前と関連付る4.PushNotificationChannelManagerクラスを利用してチャンネルというURIを取得する。プッシュ通知サービスに通知を依頼する(この時点でプッシュ更新が行われます)手順も多く、実装もWindowsストアアプリとサーバー両方に必要です。以下ではその流れを説明していきます。1.アプリ名をWindowsストアで予約して、Push通知に必要なIDとキーを取得する最初のステップはWindowsストアにプッシュ通知を受け取るアプリを登録することです。(ストアにアプリを登録するためにはストアのアカウントが必要になります。対して認証する方法の注釈を参考にしてください)ストアにログイン後、「アプリの提出」からアプリ名を予約します。アプリの名前を予約します「高度な機能」から「プッシュ通知とLiveConnectサービスの情報」をクリックします。「プッシュ通知とLiveConnectサービスの情報」をクリックアプリの識別をクリックします。要素の各属性を、ここに表示されている値に設定してください。以下の部分を記録しておきます。アプリケーションが作成済みの場合はPackage.appxmanifestを書き換えます。アプリケーションが作成済みでは無い場合は作成時に置き換えます。シークレットを記録します。プッシュ通知サービスと通信を行うためのトークンを取得します。プッシュ通知サービスの通信規約はプッシュ通知サービスの要求ヘッダーと応答ヘッダーを参考にして実装することも可能ですがWindows-8-PHP-NotificationsというサンプルがGitHubにありますので参考にします。'');?>上記コードがpns.php5がWindows-8-PHP-Notificationsのwpn.phpです。3.Windowsストアアプリを作成し、1で予約した名前と関連付る続いてまだ作成していない場合はWindowsストアアプリを作成します。(1で取得したidentityを書き換えていないならPackage.appxmanifestを書き換えます)ソリューションエクスプローラーのプロジェクト名を右クリック「ストア」→「アプリケーションをストアと関連付る」を選択します。作業を進めて1で予約した名前をアプリケーションと関連付けます。4.PushNotificationChannelManagerクラスを利用してチャンネルというURIを取得する。Windowsストアアプリケーションでの作業を続けます。MainPage.xaml.csを以下のように記述します。それ自体で使用できる空白ページまたはフレーム内に移動できる空白ページ。このページがフレームに表示されるときに呼び出されます。プロパティは、通常、ページを構成するために使用します。}}5.URIをサーバー(PHP)に送信する上記コードで取得したチャンネル(httpsのURI)をサーバーに登録します。(登録する処理は通知チャネルを要求、作成、保存する方法を参考にしてください。プッシュ通知サービスに通知を依頼するサーバー側(PHP)で通知用のURIを受け取ったら上記コードは実行に必要な情報がすべてそろいました。'');?>{セキュリティID}、{クライアントシークレット}、{Windowsストアアプリで取得した通知URI}に取得した値を入力して実行してみましょう。}上のような結果が得られれば通信は成功です。プッシュ更新はサーバー側のコーディングが必要ですが、任意のタイミングで情報を配信できる価値のある方法です。マスターしてアプリケーションに生かしてください。コメントをキャンセルメールアドレスが公開されることはありません。付いている欄は必須項目ですCommentName*Email*Website古代魚庵という屋号でフリーランスのプログラマー兼ライター業をやっています。