Microsoft graph api OneDrive-使用RESTAPI访问共享webURL指定的文件夹

Microsoft graph api OneDrive-使用RESTAPI访问共享webURL指定的文件夹,microsoft-graph-api,onedrive,Microsoft Graph Api,Onedrive,我正在使用https://graph.microsoft.com/v1.0端点和 我使用:/drive/special/approt:{SomePath}:/createLink获取文件夹的共享链接 这将返回一个类似以下内容的链接:https://1drv.ms/u/s!...pZqIns 其他用户稍后将使用具有此URL的浏览器访问共享数据。没问题。但他们也希望使用我的应用程序,它使用RESTAPI。如何将链接转换为文件ID,以便他们可以使用我的应用程序访问文件夹及其内容 如果有关系的话。。。这

我正在使用
https://graph.microsoft.com/v1.0
端点和 我使用:
/drive/special/approt:{SomePath}:/createLink
获取文件夹的共享链接

这将返回一个类似以下内容的链接:
https://1drv.ms/u/s!...pZqIns

其他用户稍后将使用具有此URL的浏览器访问共享数据。没问题。但他们也希望使用我的应用程序,它使用RESTAPI。如何将链接转换为文件ID,以便他们可以使用我的应用程序访问文件夹及其内容


如果有关系的话。。。这不是应用程序文件夹本身。

根据您的描述,我想您希望通过转换共享链接来获取共享文件

根据我的测试,当我们为一个文件创建共享链接时,我们可以得到这个文件的共享链接

然后,我们可以使用以下步骤通过转换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.
例如,要将URL编码为C#,请执行以下操作:

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

GET/shares/{sharedorrl}/driveItem

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

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


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

和下载文件内容/共享/{shareIdOrUrl}/content或/shares/{shareIdOrUrl}/driveItem/content?是的,您可以这样做
string sharingUrl = "{your shareLink}";
string base64Value = System.Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(sharingUrl));
string encodedUrl = "u!" + base64Value.TrimEnd('=').Replace('/','_').Replace('+','-');