OneDrive API和LiveSDK的区别

16

我正在开发WP8.1应用程序,并可能会移植到其他平台。 我想集成OneDrive功能,但是我不明白NuGet软件包中的LiveSDKOneDrive API API之间有什么区别。

看起来Microsoft对此根本没有任何沟通,我真的不明白为什么。据我所知,LiveSDK是旧的API,将被OneDrive API取代,但LiveSDK使用起来似乎更简单,我无法理解他们的逻辑...除此之外,两个API都最近进行了更新(LiveSDK在四月份进行了更新)。

因此我的问题是:

  • 只要我的应用程式还未发布,我应该转换到OneDrive API,还是继续使用LiveSDK
  • 是否已经有人尝试过两者?
  • 两者的限制和优势是什么?

基于未来的视野,我会选择使用OneDrive API,但我的主要担忧是:

OneDrive API上登录是否像Live SDK一样容易?(下面是暂时的解决方案)

目前,我已经能够使用一个按钮和三行代码在LiveSDK上登录,完全不需要用户输入,而OneDrive API使用的AuthenticateAndContinue方法会打开一个Webcontrol并要求手动输入登录名和密码。

最后,我使用了LiveSDK身份验证,并使用提供的访问令牌使用OneDrive API。从我的角度来看,这不是一种清洁的方法,但我无法成功使AuthenticateAndContinue方法运行(登录后我得到了404错误答案)。

如果有人有更好的解决方案,我愿意听取建议 :)


我已经解决了我的问题(等待新的OneDrive API SDK改进),但如果有任何建议可以使用“更清晰”的方式进行身份验证,我会很高兴。 - Jean
我和Jean处于类似的情况,你在哪里找到相关资源的?我仍然不知道如何将OneDrive连接到我的WP 8.1应用程序。我想从我的WP 8.1应用程序上传文件到OneDrive,有任何资源吗? - J86
抱歉回复晚了。说实话,我仍然无法使用后台下载器正确地下载文件(传输从未结束,文件也没有写入手机)。这里有一些示例:https://github.com/OneDrive/onedrive-explorer-win,但不幸的是,当我使用自己的代码时,它并不能按预期工作... - Jean
1个回答

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 });

虽然使用了两个不同的SDK,但效果还不如我所希望的那么干净,但它可以工作 :)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接