Tob*_*ann 6 c# xaml live-sdk win-universal-app
我正在开发一个通用的Windows应用程序(Windows 10),我有一个"双层"应用程序:在IoT设备(例如Raspberry Pi 2)上它只显示内容,但在所有其他设备(PC,笔记本电脑,智能手机,等等.你有一个类似控制器的显示数据.
我想要实现的功能之一是控制器部件中的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
}
Run Code Online (Sandbox Code Playgroud)
所以我的问题是,我没有从可以存储RefreshToken的LiveConnectSession中获取字段,但是我读到的所有文章都在说,我只需要将wl.offline_access添加到用于接收RefreshToken的范围.
我对OAuth2.0并不熟悉,并且SDKs/API正在建立在OAuth上,所以有人知道什么,我做错了什么或我如何处理它?
我真的很感谢所有善意和有用的答案!
PS:我使用的是Live SDK 5.6,而不是新的OneDrive API,因为它无法访问日历信息
wl.offline_access
在本例中,它讨论的是用户授权,并允许应用程序在用户不在场时(当用户离线时,而不是计算机/设备离线时)获得用户的授权来工作。
这并不意味着应用程序会在系统离线时登录用户,而是会请求用户允许应用程序在用户不在场时运行。
甚至我也曾在我的早期项目之一中使用 Live SDK 来获取用户数据,但对于日历,必须使用 Office365。现在您甚至可以使用Outlook API
虽然我们确实使用 loginResult.Session.AccessToken 获取访问令牌,但我认为不会为 WinRT 应用程序生成刷新令牌。
| 归档时间: |
|
| 查看次数: |
203 次 |
| 最近记录: |