【问题标题】:Onedrive API vs LiveSDKOnedrive API 与 LiveSDK
【发布时间】:2015-08-13 12:10:37
【问题描述】:

我正在为 WP8.1 开发,可能会移植到其他平台上。 我想集成 OneDrive 功能,但是,我不明白 LiveSDK(来自 NuGet 包)和 OneDrive API 之间有什么区别。

似乎Microsoft 根本没有就此进行交流,我真的不明白为什么。据我了解,LiveSDK 是旧的,将被OneDrive API 取代,但LiveSDK 似乎使用起来更简单,我无法理解他们的逻辑......最重要的是最近更新了(4月为LiveSDK)。

所以我的问题是

  • 只要我的应用程序尚未发布,我是否应该转移到 OneDrive API,还是继续LiveSDK
  • 是否有人已经 两个都试过了?
  • 两者都有哪些限制和好处?

基于面向未来的愿景,我会选择OneDrive API,但我主要关心的是:

OneDrive API 上登录是否比在Live SDK 上更容易? (下面的工作临时解决方案)

目前,我已经能够使用单个按钮和三行代码使用 LiveSDK 登录,根本不需要用户输入,其中 OneDrive API 使用的 AuthenticateAndContinue 方法打开一个 Web 控件并需要手动输入登录名和密码。

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

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

【问题讨论】:

  • 我已经解决了我的问题(等待新的 OneDrive API SDK 改进),但我很乐意接受任何允许使用“更清洁”方式进行身份验证的建议。
  • 我也有类似的情况,Jean,你在哪里找到的相关资源?我仍然不知道如何将 OneDrive 连接到我的 WP 8.1 应用程序。我想从我的 WP 8.1 应用程序将文件上传到 OneDrive,有什么资源吗?
  • 抱歉回复晚了。老实说,我仍然无法使用后台下载器正确下载文件(传输永远不会结束,文件也没有写入手机)。 github.com/OneDrive/onedrive-explorer-win 上有一些示例,但不幸的是,当我使用自己的代码时,它无法按预期工作......

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


【解决方案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 });

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-30
    • 2014-11-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多