gpt4 book ai didi

c# - 在通用 Windows 应用程序中从 Windows Live SDK 接收刷新 token

转载 作者:太空狗 更新时间:2023-10-29 21:53:29 26 4
gpt4 key购买 nike

我正在开发一个通用的 Windows 应用程序 (Windows 10),其中有一个“双层”应用程序:在物联网设备(例如 Raspberry Pi 2)上,它只显示内容,但在所有其他设备(PC、笔记本电脑)上、智能手机等)你有一个类似 Controller 的东西来显示数据。

我想要实现的功能之一是 Controller 部分中的 Windows Live 登录,以获取显示物联网部分中的日历信息。为此,我为用户提供了使用 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
}

所以我的问题是,我没有从可以存储 RefreshTokenLiveConnectSession 获得一个字段,但我阅读的所有文章都告诉我,我只需要将 wl.offline_access 添加到接收 RefreshToken 的范围。

我不是很熟悉 OAuth2.0 并且 SDK/API 是在 OAuth 上构建的,所以有人知道我做错了什么或者我必须如何处理它吗?

我真的很感谢所有善意和有用的答案!

PS:我使用的是 Live SDK 5.6 而不是新的 OneDrive API,因为它无法访问日历信息

最佳答案

wl.offline_access

在这种情况下,它讨论的是用户授权,并允许应用程序在用户不在场时获得用户授权(当用户离线时,而不是计算机/设备)。
这并不意味着应用程序会在系统离线时登录用户,而是会请求用户允许应用程序在用户不存在时运行。
即使我在我早期的项目之一中使用过 Live SDK 来获取用户数据,但日历必须使用 Office365。现在您甚至可以使用 Outlook API虽然我们确实使用 loginResult.Session.AccessToken 获取了访问 token ,但我认为不会为 WinRT 应用程序生成 refreshToken。

关于c# - 在通用 Windows 应用程序中从 Windows Live SDK 接收刷新 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32847580/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com