Я разрабатываю универсальное приложение для Windows (Windows 10), где у меня есть «двухслойное» приложение: на устройствах IoT (например, Raspberry Pi 2) он просто отображает но на всех других устройствах (ПК, ноутбуках, смартфонах и т. д.) у вас есть что-то вроде контроллера для отображаемых данных.Получение токена обновления из Windows Live SDK в Universal Windows App
Одной из особенностей, которую я хочу реализовать, является вход в Windows Live в части контроллера для получения информации о календарном состоянии в Display-IoT-Part. Для этого я дать пользователям возможность для входа в систему с Windows Live, как показано ниже:
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
}
Так что мой proplem в том, что я не получаю поле из LiveConnectSession где RefreshToken может быть сохранена, но все прочитанные статьи говорят, что мне просто нужно добавить wl.offline_access в области для получения RefreshToken.
Я не очень хорошо знаком с OAuth2.0 и SDK/API строят на OAuth, так что кто-то знает что-то, что я делаю неправильно или как мне с этим справиться?
Я очень благодарен за все полезные и полезные ответы!
PS: Я использую Live SDK 5.6, а не новый OneDrive API, потому что он не имеет доступа к информации календаря
Никто с идеей? –
Если вы посмотрите на [источник liveSdk] (https://github.com/liveservices/LiveSDK-for-Windows), то вы увидите, что в большинстве исполняемых запросов метод 'RefreshTokenIfNeeded()' называется. Поэтому я думаю, что токен обновления не отображается, поскольку он обрабатывается автоматически. – Romasz
Я установил Live SDK 5.6.3 из пакета nuget, и там loginResult.Session имеет свойство RefreshToken, поэтому не уверен, что вы используете там, где нет такого свойства. – Evk