Ich entwickle eine universelle Windows-App (Windows 10), wo ich eine "Two-Layered" App habe: Auf IoT-Geräten (zB Raspberry Pi 2) wird nur angezeigt Inhalt, aber auf allen anderen Geräten (PC, Notebook, Smartphone, etc.) haben Sie so etwas wie einen Controller für die angezeigten Daten.Refresh Token von Windows Live SDK in Universal Windows App empfangen
Eine der Funktionen, die ich realisieren möchte, ist die Windows Live Login im Controller-Teil, um Kalenderinformationen im Display-IoT-Teil zu erhalten. Dafür gebe ich den Benutzern die Möglichkeit, mit Windows Live anmelden, wie unten dargestellt:
LiveAuthClient auth = new LiveAuthClient();
LiveLoginResult loginResult = await auth.LoginAsync(new string[] { "wl.signin", "wl.calendars", "wl.offline_access" });
if (loginResult.Status == LiveConnectSessionStatus.Connected)
{
//Save the AccessToken from loginResult.Session.AccessToken
TokenHandler.Save(loginResult.Session.AccessToken); //AccessToken is quite accessable right here
//But as far as I know I should save the RefreshToken, but the Session has no field for it
}
Also mein proplem ist, dass ich nicht bekommen, ein Feld aus der LiveConnectSession wo die RefreshToken gespeichert werden könnten, aber alle Artikel, die ich lese, erzählen, dass ich nur wl.offline_access zu den Bereichen für das Erhalten eines RefreshToken hinzufügen muss.
Ich bin nicht sehr vertraut mit OAuth2.0 und SDKs/APIs sind auf OAuth, so weiß jemand etwas, was ich falsch mache oder wie ich damit umgehen muss?
Ich bin wirklich dankbar für alle gut gemeinten und hilfreichen Antworten!
PS: Ich bin mit dem Live-SDK 5.6 und nicht der neue Microsoft Onedrive API, weil sie keinen Zugang Informationen
Niemand mit einer Idee? –
Wenn Sie sich [die Quelle von liveSdk] (https://github.com/liveservices/LiveSDK-for-Windows) ansehen, dann werden Sie feststellen, dass die 'RefreshTokenIfNeeded()' Methode bei der Ausführung der Anfrage am häufigsten ist namens. Daher denke ich, dass das Aktualisierungstoken nicht verfügbar ist, da es automatisch behandelt wird. – Romasz
Ich habe Live SDK 5.6.3 aus nuget-Paket installiert, und dort hat loginResult.Session die RefreshToken-Eigenschaft, also nicht sicher, was Sie dort verwenden, wo es keine solche Eigenschaft gibt. – Evk