在同一应用的不同用户之间共享 OneDrive 中的文件

Sharing a file in OneDrive between different users of the same app

我的 UWP 应用需要在不同用户之间共享一些 xml 文件。 假设用户 A 创建文件,用户 B 需要访问它们(读写)。

用户 A 将文件保存到她的 OneDrive 上的 App 文件夹中(OneDrive > 应用程序 > MyApp > file.xml)。

现在用户B在使用应用时,需要访问A的OneDrive中的文件。

据我所知,使用 C# OneDrive SDK 我有两种方法让 B 访问文件:

1) 用户A 与用户B 共享MyApp 文件夹,并将文件夹ID 发送给他。用户B在应用程序中输入文件夹ID,应用程序可以使用文件夹ID获取文件。

2) 用户A与用户B共享MyApp文件夹;用户 B 将共享文件夹添加到他的 OneDrive;现在,该应用程序可以通过查看 Drive/Root 的子项并找到具有正确名称和远程项目的文件夹来搜索文件夹。该应用程序可以使用远程项目 ID 获取文件。

我不太喜欢这两种解决方案,因为它们都依赖于用户的工作,这很容易出错,而且可能不是他们以前必须做的事情(在电子邮件中发送一个奇怪的 ID,将其输入应用程序,或将共享文件夹添加到一个人的 OneDrive)。

理想情况下,我会让用户 A 与 B 共享文件夹,然后应用程序会以某种方式通过 B 的 OneDrive 找到它(没有 B 明确添加它),但我还没有找到使用 C# SDK 执行此操作的方法。

遇到同样问题的人:

事实证明,应该可以通过 API 找到与用户共享的文件夹,但由于这个错误,它不起作用:https://github.com/OneDrive/onedrive-sdk-csharp/issues/133

修复了仅适用于 API am 的 1.2 版的错误,可以在这个分支中找到它:https://github.com/OneDrive/onedrive-sdk-csharp/tree/v1-maintenance