Świetna odpowiedź Richard. To bardzo pomogło.
Zauważyłem kilka komentarzy od osób narzekających, że nie mogą znaleźć zdarzenia InitializedCompleted. Jeśli kodujesz w .Net 4.5, musisz postępować zgodnie ze wzorcem async/await dla metod asynchronicznych. Klasa powyżej wyglądałby następująco:
public class LiveLogin
{
private static readonly string[] Scopes =
new[]
{
"wl.signin",
"wl.basic",
"wl.calendars",
"wl.calendars_update",
"wl.contacts_calendars",
"wl.events_create"
};
private LiveAuthClient _authClient;
public async Task<LiveConnectClient> Login()
{
_authClient = new LiveAuthClient("**your client id here**");
LiveLoginResult result = await _authClient.InitializeAsync(Scopes);
if (result.Status == LiveConnectSessionStatus.Connected)
{
return new LiveConnectClient(result.Session);
}
result = await _authClient.LoginAsync(Scopes);
if (result.Status == LiveConnectSessionStatus.Connected)
{
return new LiveConnectClient(result.Session);
}
return null;
}
}
MS mają asynchronicznie czekają starterów here
kredyty: http://social.msdn.microsoft.com/Forums/en-GB/messengerconnect/thread/ a1ae8e9c-47a5-4bd8-b821-33dc1a0d6e94 – Richard
Dzięki. Microsoft powinien to udokumentować. – ashraf
Wielkie dzięki za ten krótki i słodki kawałek kodu. Nie miałem jasnego pojęcia, jak korzystać z LiveAuthClient. Nowa dokumentacja MSDN dla Live SDK jest błędna, [metoda LiveAuthClient (String)] [1] mówi, że parametr string to The redirect URI. Nie wspomina nic o ClientID. [1] http://msdn.microsoft.com/en-us/library/live/microsoft.live.liveauthclient.aspx – Adarsha