サンプルアプリケーションの解説
ここからは、サンプルアプリケーションをベースに説明していきます。
認証部分の確認
モバイルサービスの認証を利用するために、新たなライブラリは特に必要ありません。モバイルサービスが提供するメソッドを利用することで、簡単に実現できます(※1)。
Main.xaml.csを開き、Authenticateメソッドを確認してください(リスト1)。
private MobileServiceUser user; ... ① private async System.Threading.Tasks.Task Authenticate() ... ② { while (user == null) { string message; try { user = await App.MobileService ... ③ .LoginAsync(MobileServiceAuthenticationProvider.MicrosoftAccount); message = string.Format("ログイン - {0}", user.UserId); } catch (InvalidOperationException) { message = "ログインされていません"; } var dialog = new MessageDialog(message); ... ④ dialog.Commands.Add(new UICommand("OK")); await dialog.ShowAsync(); } }
①はモバイルユーザー情報を格納するMobileServiceUserクラスのプロパティです。
②が認証を行うAuthenticate非同期メソッドです。③のMobileServiceクラスのLoginAsyncメソッドを利用して認証を行います。第1引数のMobileServiceAuthenticationProvider列挙型で利用する認証サービスを指定します。
ここでは、MicrosoftAccountを指定していますが、それ以外にもFacebook、Twitter、Googleが指定できます。
④でログインの状態をダイアログに表示して完了です。
モバイルサービスSDKは定期的に更新されているため、古い版を使っていると、リストのコードがコンパイルエラーになる場合があります。そのような場合は、新しいSDKを入手して再インストールしてください。SDKは、モバイルサービスの管理画面から入手可能です。
認証の呼び出し
リスト1の認証メソッドの呼び出しは、OnNavigateToメソッド内で行ないます。OnNavigateToは、アプリケーションが起動したときに呼び出されます。リスト2を確認してください。
protected override async void OnNavigatedTo(NavigationEventArgs e) { await Authenticate(); ... ① RefreshMessages(); }
メッセージのリフレッシュに先立って、①の部分でAuthenticateメソッドを呼び出します。
認証に関連するコードは以上です。
実行確認
前回と同様、ローカルコンピュータ上でデバッグを実行してください。
[1]サインインする
アプリケーションが起動すると、Microsoftアカウントへのサインイン画面が表示されます(図7)。ユーザーIDとパスワードでサインインしてください。
[2]アクセス許可をする
Microsoftアカウントの場合、初回のアプリケーション認証時にアプリケーションがMicrosoftアカウントの情報へアクセスしてもよいか、ダイアログで確認を求めてきます(図8)。ここでは、[はい]を選択し処理を続けてください。
[3]ログインの確認
認証に成功するとMicrosoftアカウントのIDが表示されます。[OK]を押せば、前回のプッシュ通知アプリが起動します。
現在のところ、モバイルサービスSDK単独ではMicrosoftアカウントの各種情報(名前等)にアクセスするAPIは用意されていません。図9のとおりIDが取得できるのみです。
このような情報にアクセスしたい場合は、Live SDKと組み合わせて利用することができますが詳細は割愛します。