如何无需预访问共享链接,通过REST API访问SharePoint公开文件夹?
携带共享链接的访问令牌到REST请求
你创建的公开共享链接里包含了匿名访问所需的授权参数(通常是at或token这类键值对),把这些参数直接追加到REST API的URL末尾,就能跳过预访问拿Cookie的步骤。比如你的共享链接是https://<tenant>.sharepoint.com/sites/<site>/Freigegebene%20Dokumente?at=xxxxxx,修改后的REST请求URL如下:https://<tenant>.sharepoint.com/sites/<site>/_api/web/GetFolderByServerRelativeUrl('Freigegebene%20Dokumente')/Folders?at=xxxxxx只要共享链接的权限设置有效(比如“任何人可访问,无需登录”),这个令牌就能让REST请求获得合法访问权限。
改用
GetFolderByUrl方法发起请求
直接把包含授权令牌的完整共享链接作为参数,调用GetFolderByUrl方法,API会自动识别共享链接的权限规则,无需额外处理Cookie。请求URL示例:https://<tenant>.sharepoint.com/sites/<site>/_api/web/GetFolderByUrl('https://<tenant>.sharepoint.com/sites/<site>/Freigegebene%20Dokumente?at=xxxxxx')/Folders添加匿名访问专属请求头
给REST请求配置以下头部,触发SharePoint的匿名访问模式:- 必须添加:
Accept: application/json;odata=verbose(标识请求为REST类型,指定返回格式) - 可选尝试:
Authorization: Bearer(Bearer后留空,告知服务器尝试匿名授权)
同时要确保请求没有携带用户认证相关的Cookie,避免权限冲突。
- 必须添加:
需要注意:如果共享链接被撤销、令牌过期,对应的REST请求也会失效,要保持共享链接的权限设置处于有效状态。
内容的提问来源于stack exchange,提问作者MadLuca
相关产品推荐
相关产品推荐

