我目前正在开发一项 Windows 服务,该服务将检查和更新 Excel 文件并将它们上传到选定的云存储 - SharePoint 或 OneDrive。整个过程应该是全自动的,无需任何用户交互 - 所有必需的信息(用户名、密码等)都是配置文件的一部分。
除 OneDrive 部分外,一切进展顺利。我无法找到一个全自动的解决方案来登录和上传到这个云存储。我知道 Microsoft Live SDK,但它对非 WinPhone 和 -WinStore 应用程序的支持减少了,而且据我所知,它总是要求用户输入用户名、密码(网络浏览器组件)。
第二个选项是 SkyDriveClientAPI ( link here ),但此 API 不再有效(如问题中所述)。
有没有无需用户交互就可以使用 Live SDK 的方法,或者您对不同的方法有任何其他建议吗?
最佳答案
这部分是可以实现的
如其他答案中所述,一个驱动器需要用户身份验证,这使得全自动解决方案变得不可能。
然而,几乎自动的解决方案是可能的,这意味着可以创建一个应用程序,该应用程序将需要一次登录(第一次激活时)并在登录后,由用户授权运行应用程序,从那时起应用程序将能够自动运行( 上传、下载、创建文件夹、直接链接到上传的文件等...),即使应用程序关闭并重新启动机器,这将继续工作。
从一个驱动器连接中分离应用程序的唯一方法是注销应用程序(可以自动实现)。
这可以通过使用 LIVE sdk(桌面)并遵循单点登录指南来实现, 您很可能需要访问以下范围:
- wl.basic
- wl.signin
- wl.skydrive_update
- wl.offline_access
检查一个驱动开发中心:
为了实现此行为,我建议执行以下步骤:
- 下载实时桌面源代码
- 探索 ApiExplorer 示例 ( Live SDK Desktop Code + ApiExplorer code sample ) - 这将向您展示如何登录、注销、下载和上传内容。
使用示例构建基本演示 App 后:
- 增强您的应用以使用单点登录功能,
- 增强您的应用以刷新其身份验证 token (因此 session 不会超时等)
关于C# 登录并上传到 OneDrive 无需用户交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24812357/