如何通过SharePoint API访问共享文件夹内容并上传文件?
解决共享文件夹访问与上传问题
核心问题原因
通过GET https://graph.microsoft.com/v1.0/me/drive/sharedWithMe获取的共享文件夹,其顶层id是共享关系的标识,而非文件夹在源驱动器中的真实ID。直接用这个ID调用/me/drive/items/{folderId}/children会失效,因为该文件夹并不属于当前用户的个人OneDrive(/me/drive)。
正确操作步骤
提取有效ID参数
从sharedWithMe的JSON响应里,找到目标文件夹的remoteItem对象,提取两个关键字段:remoteItem.id:文件夹在源驱动器中的真实IDremoteItem.driveId:存储该文件夹的源驱动器ID(可能是共享者的个人OneDrive或SharePoint站点库)
示例响应片段:
{ "id": "shared-relation-id", "name": "我的共享文件夹", "folder": { "childCount": 5 }, "remoteItem": { "id": "actual-folder-id-123", "driveId": "source-drive-id-456", "folder": { "childCount": 5 } } }访问文件夹子项
用提取到的参数调用接口:GET https://graph.microsoft.com/v1.0/drives/{driveId}/items/{remoteItemId}/children上传文件到共享文件夹
使用PUT请求上传文件,接口格式:PUT https://graph.microsoft.com/v1.0/drives/{driveId}/items/{remoteItemId}:/{目标文件名}:/content请求体为文件的二进制内容。
权限要求
确保应用已获取对应权限:
- 共享内容来自个人OneDrive:需
Files.ReadWrite.All权限 - 共享内容来自SharePoint站点库:需
Sites.ReadWrite.All权限
内容的提问来源于stack exchange,提问作者Awanish Mishra
相关产品推荐
相关产品推荐

