我正在为WP8.1开发,可能会在其他平台上移植。我想集成一个OneDrive功能,但是,我不明白LiveSDK (来自NuGet包)和OneDrive API接口之间有什么区别。
似乎Microsoft在这方面根本不沟通,我真的不明白为什么。据我所知,LiveSDK是旧的,将被OneDrive API取代,但是LiveSDK的使用似乎简单得多,以至于我无法理解它们的逻辑.最重要的是,这两项都是最近更新的(对于LiveSDK来说是在4月份)。
所以我的问题是
OneDrive API,还是继续使用LiveSDK?基于未来的前景,我会选择OneDrive API,但我最关心的是:
与使用OneDrive API Live SDK**?相比,可以轻松地在上登录。(下文工作临时解决办法)**
目前,我已经能够使用一个按钮和三行代码使用LiveSDK登录,根本不需要用户输入,其中OneDrive API使用的AuthenticateAndContinue方法打开一个used控件,并需要手动输入登录和密码。
最后,我使用了LiveSDK身份验证,并使用了OneDrive API提供的访问令牌。从我的观点来看,这不是一种干净的方法,但我无法让AuthenticateAndContinue方法工作(登录后我得到了一个404错误答案)。
如果有人有更好的解决方案,我愿意听取以下建议:)
发布于 2018-04-03 10:58:54
从问题中提取出解决方案以脱离“未回答”堆栈
总之,我目前的方法如下:
简化代码如下:
下面的方法允许以静默方式登录,只是第一次需要用户手动验证,允许程序使用其Live 帐户.。
它不需要用户的任何密码。
var authClient = new LiveAuthClient();
var authResult = await authClient.LoginAsync(new string[] {
"wl.signin", "onedrive.readwrite", "onedrive.appfolder"});
if (authResult.Session == null)
throw new InvalidOperationException("You need to sign in and give consent to the app.");
var Connection = new ODConnection("https://api.onedrive.com/v1.0",
new MicrosoftAccountAuthenticationInfo() { TokenType = "Bearer",
AccessToken = odArgs.Session.AccessToken });它没有我想要的那么干净(使用两个不同的SDK),但是它可以:)
https://stackoverflow.com/questions/30549692
复制相似问题