OneDrive-使用Rest API访问共享webURL指定的文件夹

时间:2018-09-12 03:30:56

标签: microsoft-graph onedrive

我正在使用crypto_secretbox_open()端点, 我使用以下命令获取文件夹的共享链接:https://graph.microsoft.com/v1.0

这将返回类似于以下内容的链接:/drive/special/approot:{SomePath}:/createLink

稍后,另一个用户将使用具有此URL的浏览器访问共享数据。没问题。但他们也想使用使用其余API的我的App。如何将链接转换为FileID,以便他们可以使用我的App访问文件夹及其内容?

如果有关系……这不适用于应用文件夹本身。

1 个答案:

答案 0 :(得分:1)

根据您的描述,我想您想通过转换shareLink获得共享文件。

根据我的测试,当我们为文件创建shareLink时,我们可以获得该文件的shareLink。

然后,我们可以按照以下步骤通过转换shareLink来获取文件信息。

1。使用以下逻辑对shareLink进行编码:

  1)First, use base64 encode the URL.
  2)Convert the base64 encoded result to unpadded base64url format by removing = characters from the end of the value, replacing / with _ and + with -.)
  3)Append u! to be beginning of the string.

例如,以C#编码URL:

string sharingUrl = "{your shareLink}";
string base64Value = System.Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(sharingUrl));
string encodedUrl = "u!" + base64Value.TrimEnd('=').Replace('/','_').Replace('+','-');

2。使用以下API获取共享项:

GET /shares/{shareIdOrUrl}/driveItem

“ shareIdOrUrl”参数是步骤1中的结果。

此API将返回有关共享文件的所有信息。

有关更多详细信息,我们可以参考this document