サンプルアプリケーションの解説
ここからは、サンプルアプリケーションをベースに説明していきます。
認証部分の確認
モバイルサービスの認証を利用するために、新たなライブラリは特に必要ありません。モバイルサービスが提供するメソッドを利用することで、簡単に実現できます(※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と組み合わせて利用することができますが詳細は割愛します。



