我正在使用crypto_secretbox_open()
端点,
我使用以下命令获取文件夹的共享链接:https://graph.microsoft.com/v1.0
。
这将返回类似于以下内容的链接:/drive/special/approot:{SomePath}:/createLink
稍后,另一个用户将使用具有此URL的浏览器访问共享数据。没问题。但他们也想使用使用其余API的我的App。如何将链接转换为FileID,以便他们可以使用我的App访问文件夹及其内容?
如果有关系……这不适用于应用文件夹本身。
答案 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。