Onedrive API与LiveSDK

Jea*_*ean 15 live-sdk onedrive windows-phone-8.1

我正在为WP8.1开发,可能会在其他平台上移植.我想集成OneDrive功能,但是,我无法理解LiveSDK(来自NuGet包)和OneDrive API之间的区别.

似乎Microsoft根本就没有沟通,我真的不明白为什么.据我所知,它LiveSDK是旧的,将被替换为OneDrive API,但LiveSDK似乎更简单的使用,我无法理解他们的逻辑...最重要的是最近都更新(4月为LiveSDK).

所以我的问题是

  • 只要我的应用程序还没有发布,我应该转移 OneDrive API,还是继续LiveSDK
  • 有人已经试过了吗?
  • 两者的局限和好处是什么?

基于面向未来的视力,我会去寻找OneDrive API,但我主要担心的是:

是否可以轻松登录而OneDrive API不是Live SDK?(以下工作临时解决方案)

现在,我已经能够LiveSDK使用单个按钮和三行代码登录,根本不需要用户输入,其中打开Webcontrol AuthenticateAndContinue所使用的方法OneDrive API需要手动输入登录名和密码.

最后我使用了LiveSDK身份验证并使用随附的访问令牌OneDrive API.从我的角度来看,这不是一个干净的方法,但我无法让AuthenticateAndContinue方法工作(我在登录后得到404错误答案).

如果有人有更好的解决方案,我会接受建议:)

Jea*_*ean 1

[从问题中提取解决方案以摆脱“未回答”堆栈]

总结一下,我目前的方法如下:

  1. 使用LiveSDK API进行身份验证
  2. 使用会话 cookie 和 OneDrive API

简化后的代码如下:

下面的方法允许静默登录,只有第一次需要用户手动验证,允许程序使用其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 });
Run Code Online (Sandbox Code Playgroud)

它不像我想要的那么干净(使用 2 个不同的 SDK),但它可以工作:)