【问题标题】:UWP backup on users OneDrive用户 OneDrive 上的 UWP 备份
【发布时间】:2020-06-29 13:23:35
【问题描述】:

我想为 UWP 商店应用程序实施 OneDrive 备份 - 不要求用户输入登录名/密码(用户已登录 MS 帐户)。您能否指出实际(现代)教程如何仅在“onedrive.appfolder”中读取和写入文件。

我尝试了多个有关访问 OneDrive 的示例,所有示例都已过时且无法正常工作: LiveSDK OneDriveSDK(V1,V2) 图表 - 来自 Azure 注册门户 - 两个示例应用程序已注册应用程序 - 不适用于 Windows 身份验证。 Community.Toolkit.OneDriveService(在最新版本中删除了带有注释的服务 -> 删除了旧服务和过时的图形实现)。我没有找到现代替代品。

我遇到了两个主要问题: 授权,大多数用于企业 SharePoint 访问的示例,所有示例都未能使用 windows auth(没有登录提示)并出现错误:无法获取用户信息:检查应用程序是否具有正确的兼容性……这不是真的 - 我可以通过系统获取登录用户信息.User ,也是在首次运行 UWP 时要求获得读取帐户许可。我相信我已经使用 WebAccountProvider 和单个 OneDrive 应用程序文件夹许可问题(范围“onedrive.appfolder”)完成了这一部分并返回了令牌。有趣,但我不需要创建 Azure/ 应用程序注册来访问 OneDrive 应用程序 - 商店关联就足够了。但是 Token 不能与 Graph 或 OneDriveSDK V2 一起使用。 https://github.com/microsoft/Windows-universal-samples/tree/master/Samples/WebAccountManagement

第二个问题 - 使用 OneDrive 读取和写入文件夹/文件 - 没有明确的文档或示例。

谢谢, 马克西姆

【问题讨论】:

    标签: uwp onedrive


    【解决方案1】:

    首先,您必须授权您的应用使用OneDrive 权限,这意味着您的应用会弹出一个登录窗口,用户输入电子邮件和密码,然后您的应用才能使用OneDrive 读写权限。然后就可以存储token,下次不用再询问用户就可以使用这个token登录了。

    其次,WCT团队发布了一个名为 Windows Community Toolkit Sample App的应用,你可以从这个url下载。

    然后在Services标签中,他们是OneDrive Service,参考这个doc

    【讨论】:

    • 我要避免的第一件事是 OneDrive 的登录窗口。我真的很讨厌为我已经登录的同一服务多次输入凭据以进行简单的应用程序备份。我最多可以要求用户确认(是/否)OneDrive 可用于存储应用程序数据。有什么办法可以避免windows store应用备份的登录窗口?
    • 其次,我未能使用示例link 中的社区工具包。我有带有 UWP 应用程序的 Xamarin 表单,使用 Nuget 我已经安装了 Microsoft.Toolkit.Uwp.Services 和 Microsoft.Toolkit.Services v6.1.0,并且命名空间 Microsoft.Toolkit.Services.OneDrive 中缺少 OneDrive 类。
    • 也许 onedrive 服务又变了。您可以在 google 上搜索更多文档。
    【解决方案2】:

    我找到了下一个解决方案,可以轻松访问 OneDrive Api 以保存应用备份。

    为了获取身份验证令牌,我使用了来自 WebAccountManagment sample 的 WebAccountProvider。

    为了与 OneDrive Api 通信,我使用了 Annotate Audio App Sample,还包括身份验证和使用 https://api.onedrive.com/v1.0/ Api。

    API 文档https://docs.microsoft.com/en-us/onedrive/developer/rest-api/concepts/special-folders-appfolder?view=odsp-graph-online

    【讨论】:

      猜你喜欢
      • 2019-12-16
      • 1970-01-01
      • 1970-01-01
      • 2023-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多