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

使用Frends eiPaaS从O365版SharePoint列表获取数据可行性咨询

可以连接O365 SharePoint并获取列表项,以下是几种可行方案

当然可以,下面是几种经过验证的实现方案,覆盖不同技术栈和场景:

方案1:Microsoft Graph API(官方推荐)

这是微软为O365生态提供的统一API,能无缝对接SharePoint列表操作,同时支持其他O365服务。

  • 核心步骤:
    1. 在Azure AD注册应用,获取客户端ID、客户端密钥(或证书),并授予Sites.Read.All(只读)或Sites.ReadWrite.All(读写)权限。
    2. 通过OAuth2流程获取访问令牌。
    3. 调用API端点获取列表项:
      基础请求示例(GET):https://graph.microsoft.com/v1.0/sites/{site-id}/lists/{list-id}/items
      可通过$select指定返回字段、$filter过滤数据、$top控制返回条数,灵活定制结果。
  • Python代码示例:
    import requests
    
    # 替换为你的实际值
    access_token = "YOUR_ACCESS_TOKEN"
    site_id = "YOUR_SITE_ID"
    list_id = "YOUR_LIST_ID"
    
    api_url = f"https://graph.microsoft.com/v1.0/sites/{site_id}/lists/{list_id}/items?$select=id,Title,Description"
    headers = {"Authorization": f"Bearer {access_token}"}
    
    response = requests.get(api_url, headers=headers)
    response.raise_for_status()  # 处理请求错误
    list_items = response.json()
    
    # 打印结果
    for item in list_items.get("value", []):
        print(f"ID: {item['id']}, Title: {item['Title']}")
    

方案2:SharePoint原生REST API

如果只需要针对SharePoint操作,直接调用它的原生REST接口更直接。

  • 核心步骤:
    1. 获取访问令牌(支持Azure AD认证或用户OAuth)。
    2. 调用端点:https://{tenant-name}.sharepoint.com/sites/{site-name}/_api/web/lists/getbytitle('{list-title}')/items
  • Python代码示例:
    import requests
    
    # 替换为你的实际值
    access_token = "YOUR_ACCESS_TOKEN"
    site_url = "https://your-tenant.sharepoint.com/sites/your-site"
    list_title = "Your List Title"
    
    api_url = f"{site_url}/_api/web/lists/getbytitle('{list_title}')/items?$select=ID,Title,Description"
    headers = {
        "Authorization": f"Bearer {access_token}",
        "Accept": "application/json;odata=nometadata"  # 简化返回格式
    }
    
    response = requests.get(api_url, headers=headers)
    response.raise_for_status()
    list_items = response.json()
    
    for item in list_items.get("value", []):
        print(f"ID: {item['ID']}, Title: {item['Title']}")
    

方案3:使用Office365-REST-Python-Client库

这个第三方Python库封装了SharePoint和O365的操作细节,无需手动拼接API请求,开发效率更高。

  • 安装依赖:
    pip install office365-rest-python-client
    
  • 代码示例:
    from office365.sharepoint.client_context import ClientContext
    from office365.runtime.auth.client_credential import ClientCredential
    
    # 替换为你的实际值
    client_id = "YOUR_CLIENT_ID"
    client_secret = "YOUR_CLIENT_SECRET"
    site_url = "https://your-tenant.sharepoint.com/sites/your-site"
    list_title = "Your List Title"
    
    # 初始化上下文
    ctx = ClientContext(site_url).with_credentials(ClientCredential(client_id, client_secret))
    # 获取目标列表
    target_list = ctx.web.lists.get_by_title(list_title)
    # 获取列表项
    items = target_list.items.get().execute_query()
    
    # 遍历输出
    for item in items:
        print(f"ID: {item.properties['ID']}, Title: {item.properties['Title']}")
    

关键注意事项

  • 权限配置:确保注册的Azure AD应用或登录用户拥有目标列表的读取权限,否则会返回权限错误。
  • 站点/列表ID获取:可以通过Graph API的/sites端点查询,或在SharePoint站点页面查看源代码中的spPageContextInfo对象获取。
  • 认证方式:除了应用权限(适合后台服务),也支持用户交互式登录(适合桌面/前端应用)。

内容的提问来源于stack exchange,提问作者Tomas H

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 03:11:19