WinRTアプリでは、ユーザーが自分のHotmailアカウントに接続して、連絡先にアクセスできるようにします。MicrosoftのLiveConnectSDKのHotmailAPIを使用しています。
接続を確立するために、同じドキュメントのこのコードサンプルを使用します。
if (!Windows.ApplicationModel.DesignMode.DesignModeEnabled)
{
authClient = new LiveAuthClient();
LiveLoginResult authResult =
await authClient.LoginAsync(new string[] { "wl.signin", "wl.basic", "wl.emails" });
if (authResult.Status == LiveConnectSessionStatus.Connected)
{
this.session = authResult.Session;
}
}
ただし、コードはLoginAsyncメソッドでNullReferenceExceptionを発生させます。スタックトレースは次のとおりです。
at Microsoft.Live.ResourceHelper.GetString(String name)
at Microsoft.Live.TailoredAuthClient.<AuthenticateAsync>d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
at Microsoft.Live.LiveAuthClient.<ExecuteAuthTaskAsync>d__4.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
at Project.View.TestHotmailConnection.<Button_Click_1>d__0.MoveNext() in TestHotmailConnection.xaml.cs:line 63
LoginAsyncが呼び出されたときにnullではないため、この問題はauthClientに起因するとは思われません。この投稿によると、問題は初期化されていないリソースディクショナリに起因します。誰かがこの問題を知っていますか、そして最終的にそれを解決する方法を知っていますか?
ありがとう
編集
WinRTアプリでLiveContectを使用するには、Windowsストアダッシュボードで宣言する必要があります。これが解決策かもしれません。Windowsストアアカウントを持っていません。