Onedrive API与LiveSDK

时间:2015-05-30 18:15:58

标签: windows-phone-8.1 live-sdk onedrive

我正在为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错误答案)。

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

1 个答案:

答案 0 :(得分:0)

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

总之,我目前的方法如下:

  1. 使用LiveSDK API进行身份验证
  2. 使用会话cookie和OneDrive API
  3. 简化代码如下:

    以下方法允许以静默方式登录,只是第一次需要用户进行手动验证,允许程序使用其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),但它可以工作:)