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

求助:使用Python连接含teams路径的SharePoint站点失败

解决SharePoint Teams站点的Python(Shareplum)访问问题

我之前也踩过这个坑——Teams关联的SharePoint站点(URL带/teams/路径)和普通的/sites/站点在使用Shareplum访问时,确实需要调整一下配置,毕竟很多教程默认讲的是普通站点的情况。下面是我亲测有效的解决方法:

1. 正确构造站点URL路径

Shareplum的Site对象其实完全支持/teams/路径的站点,问题大概率出在你之前的URL构造上。直接把完整的Teams站点URL传给Site即可,不用特意修改路径结构:

from shareplum import Site
from shareplum import Office365
from shareplum.site import Version

# 第一步:获取认证Cookie(适用于无MFA的账号)
auth_cookie = Office365(
    "https://companyname.sharepoint.com",
    username="your_work_email@companyname.com",
    password="your_password"
).GetCookies()

# 关键:直接使用带/teams/的完整站点URL初始化Site
site = Site(
    "https://companyname.sharepoint.com/teams/mysitename",
    version=Version.v365,
    authcookie=auth_cookie
)

# 测试:获取站点内的默认文档库
doc_library = site.List("Documents")
print(doc_library.GetListItems())

2. 处理MFA或权限限制问题

如果你的账号开启了多因素认证(MFA),上面的密码认证方式会失效,这时候推荐使用应用程序权限认证(App-Only):

  1. 在Azure AD中注册一个应用,给它授予SharePoint的Sites.FullControl.All或对应所需的权限
  2. 使用客户端ID(Client ID)和客户端密钥(Client Secret)来获取认证Cookie:
from shareplum import Site
from shareplum import Office365
from shareplum.site import Version

auth_cookie = Office365(
    "https://companyname.sharepoint.com",
    client_id="your_azure_app_client_id",
    client_secret="your_azure_app_client_secret"
).GetCookies()

site = Site(
    "https://companyname.sharepoint.com/teams/mysitename",
    version=Version.v365,
    authcookie=auth_cookie
)

3. 确认站点的实际内部路径

如果还是报错,建议去你的SharePoint站点后台确认真实路径:

  • 打开站点右上角的「设置」→「网站信息」
  • 查看「网站地址」字段的完整URL,确保代码里的路径和这个完全一致(有时候Teams站点的别名可能和显示的略有不同)

本质上,/teams/开头的站点和/sites/站点都是SharePoint的站点类型,Shareplum对两者的支持是一样的,核心就是要传入完整且正确的站点URL,而不是按照教程里的/sites/格式去修改路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 18:23:10