传入用户名密码调用sharepy登录SharePoint报AttributeError问题求助
我之前也碰到过一模一样的问题,这是因为直接用sharepy.connect()传入账号密码时,会话对象的cookie没有被正确初始化完成,而手动输入账号密码的流程会触发完整的认证步骤,所以能正常工作。下面是具体的解决方案:
1. 先升级SharePy到最新版本
旧版本的SharePy存在这个已知的认证流程bug,先执行升级命令修复基础问题:
pip install --upgrade sharepy
2. 换用手动初始化会话的方式
如果升级后还是出现错误,不要用sharepy.connect()快捷方法,而是手动创建SharePointSession对象并调用login()方法,这样能强制触发完整的认证流程,确保cookie被正确设置到会话中:
import sharepy import logging import os SPUrl = "https://vvv.sharepoint.com" username = "testuserb@vvvv.onmicrosoft.com" password = "aaa@123" # 手动初始化会话并执行登录 s = sharepy.SharePointSession(SPUrl) s.login(username, password) s.save() headers = {"accept": "application/json;odata=verbose", "content-type": "application/x-www-urlencoded; charset=UTF-8"} fileToUpload = "copyUpload.py" with open(fileToUpload, 'rb') as read_file: content = read_file.read() # 注意确认上传URL中的站点路径和serverrelativeurl完全匹配 upload_endpoint = "https://aaa.sharepoint.com/sites/vvv/_api/web/getfolderbyserverrelativeurl('/sites/aaa/bbb/')/Files/add(url='"+fileToUpload+"',overwrite=true)" p = s.post(upload_endpoint, data=content, headers=headers) print(f"{fileToUpload} Uploaded in SP") os.remove(fileToUpload) logging.info("Uploaded file: with response file")
3. 额外检查点
- 确保
SPUrl和上传请求中的站点URL域名、路径完全匹配,不一致会导致会话认证失效 - 确认你的账号拥有目标SharePoint文件夹的上传权限,权限不足也可能引发间接的会话异常
内容的提问来源于stack exchange,提问作者mkHun
相关产品推荐
相关产品推荐

