You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Microsoft Graph API获取SharePoint网站文档库的问题咨询

Microsoft Graph API获取SharePoint网站文档库的问题咨询

嗨,我来帮你解决这个关于Microsoft Graph API和SharePoint文档库的问题~

你提到用代码获取SharePoint Site实体时,返回的对象里drive/drives和lists字段都是None,但在网站仪表盘里明明能正常操作文档库(截图显示了Site实体的基础属性,以及网站仪表盘里的文档库界面)。针对你的两个问题,我来逐一解答:

问题1:为什么仪表盘里能看到的文档库,在API返回的Site对象里找不到?它们是关联的吗?

这是因为Microsoft Graph API默认只会返回资源的基础属性,不会自动加载关联的导航属性(比如drives、lists这类和Site绑定的关联资源)。你看到的None不是说文档库不存在,而是API没有主动返回这部分数据——毕竟如果默认加载所有关联资源,会导致响应数据过大,影响接口性能。

其实你在仪表盘里操作的文档库,就是和这个Site直接关联的Drive(文档库本质上就是一种特殊的Drive/List),两者是完全绑定的,只是API默认没把这部分数据返回给你而已。

问题2:已知site_id的情况下,怎么通过代码管理对应的Drive实体?

有两种实用的方式,我结合你的代码示例给你修改说明:

方式1:获取Site时同时展开drives属性

你可以在调用get()方法时,配置请求参数,用$expand指定要加载drives导航属性,这样返回的Site对象里就会包含对应的文档库Drive了。

修改你的测试代码部分:

async def test_api():
    sp_dao = SharePointDAO()
    site_id = ... # 你的site id
    # 配置请求参数,指定要展开drives属性
    request_config = RequestConfiguration(
        query_parameters={
            "expand": "drives"
        }
    )
    site = await sp_dao.client.sites.by_site_id(site_id).get(request_configuration=request_config)
    logger.info(site.drives) # 现在就能看到文档库对应的Drive列表了

方式2:直接通过Site ID获取关联的Drives

如果你不需要Site的其他基础属性,也可以直接调用sites/{site_id}/drives接口,直接获取该Site下的所有Drive(也就是所有文档库):

async def test_api():
    sp_dao = SharePointDAO()
    site_id = ... # 你的site id
    drives = await sp_dao.client.sites.by_site_id(site_id).drives.get()
    logger.info(drives) # 返回该网站下的所有文档库Drive

如果要定位到特定的文档库(比如默认的“文档”库),可以在获取后筛选,或者直接通过名称/id访问:

# 获取网站的默认文档库(通常名称为"Documents")
async def get_default_document_library(site_id):
    client = GraphClientSingleton.get_client()
    drives = await client.sites.by_site_id(site_id).drives.get()
    for drive in drives.value:
        if drive.name == "Documents":
            return drive
    return None

拿到Drive对象后,你就可以进行文件上传、下载、创建文件夹等各种文档库管理操作啦。

备注:内容来源于stack exchange,提问作者Luca

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 18:20:28