Onedrive API 与 LiveSDK
Onedrive API vs LiveSDK
我正在为 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
打开一个 Webcontrol 并需要手动输入登录名和密码。
最后我使用了 LiveSDK
身份验证并使用 OneDrive API
提供的访问令牌。从我的角度来看,这不是一个干净的方法,但我无法使 AuthenticateAndContinue
方法起作用(我在登录后收到 404 错误答案)。
如果有人有更好的解决方案,我愿意接受建议:)
[从问题中提取的解决方案以脱离 "unanswered" 堆栈]
综上所述,我目前的方法如下:
- 使用 LiveSDK 进行身份验证API
- 从那里使用会话 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),但它有效:)
我正在为 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
打开一个 Webcontrol 并需要手动输入登录名和密码。
最后我使用了 LiveSDK
身份验证并使用 OneDrive API
提供的访问令牌。从我的角度来看,这不是一个干净的方法,但我无法使 AuthenticateAndContinue
方法起作用(我在登录后收到 404 错误答案)。
如果有人有更好的解决方案,我愿意接受建议:)
[从问题中提取的解决方案以脱离 "unanswered" 堆栈]
综上所述,我目前的方法如下:
- 使用 LiveSDK 进行身份验证API
- 从那里使用会话 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),但它有效:)