我正在为WP8.1开发,可能会在其他平台上移植。
我想要集成OneDrive功能,但是,我无法理解LiveSDK
(来自NuGet包)和OneDrive
API之间的区别。
似乎Microsoft
根本没有沟通,我真的不明白为什么。据我所知,LiveSDK
是旧版本,将被OneDrive API
取代,但LiveSDK
似乎更容易使用,我无法理解他们的逻辑。最重要的是,两者都在最近更新过(4月为LiveSDK
)。
OneDrive API
,或保留LiveSDK
? 根据面向未来的情况,我会选择OneDrive API
,但主要关注的是:
可以在OneDrive API
上轻松登录,而不是Live SDK
吗? (下面的工作临时解决方案)
目前,我已经能够使用单个按钮和三行代码使用LiveSDK
登录,根本不需要用户输入,其中AuthenticateAndContinue
方法使用OneDrive API
方法打开Web控件并需要手动输入登录名和密码。
最后,我使用了LiveSDK
身份验证,并使用OneDrive API
提供的访问令牌。从我的角度来看,这不是一个干净的方法,但我无法让AuthenticateAndContinue
方法起作用(我在登录后得到404错误答案)。
如果有人有更好的解决方案,我会接受建议:)
答案 0 :(得分:0)
[从问题中提取的解决方案,以摆脱“未答复的”堆栈]
总之,我目前的方法如下:
简化代码如下:
以下方法允许以静默方式登录,只是第一次需要用户进行手动验证,允许程序使用其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 });
它不像我想的那么干净(使用2个不同的SDK),但它可以工作:)