如何为OneDrive for Business及SharePoint DriveItem生成可下载链接与预览
验证Microsoft Graph createLink API生成的公开可下载URL
看起来你已经走对了路子!先帮你梳理下当前的情况和验证方法:
你的API调用参数是完全正确的:
type:"view"搭配scope:"anonymous"正是生成匿名可访问(针对文件来说就是可下载)共享链接的正确组合,curl命令的格式、请求头和payload都符合Graph API的要求。你拿到的返回链接
https://my.sharepoint.com/:u:/g/XXXXrKmGKlXXXXXXXXXXsq0Bh3x4TTXXXXXXXXXXXXXXXXX是SharePoint/OneDrive的标准共享链接格式,:u:虽然标识是用户发起的共享,但因为你指定了scope:"anonymous",这个链接应该是无需登录就能访问的。快速验证功能的方法:
- 打开浏览器的隐私/隐身窗口,直接粘贴这个链接访问,看是否能无需登录就打开文件(或浏览文件夹)
- 如果目标是直接下载文件,而不是在线查看,你可以在这个链接末尾追加
&download=1,这样访问时会直接触发下载行为(这个技巧只适用于单个文件,文件夹不支持)
要是遇到链接仍需登录的情况,可以排查这两个点:
- 检查你的Access Token是否拥有
Files.ReadWrite.All或Sites.ReadWrite.All的权限(权限不足可能导致生成的链接权限受限) - 确认你的DriveItem所在的SharePoint站点/OneDrive库没有租户级别的限制(比如管理员禁用了匿名共享功能)
- 检查你的Access Token是否拥有
内容的提问来源于stack exchange,提问作者Varun Nayal
相关产品推荐
相关产品推荐

