Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何通过传递用户名和密码登录sharepoint?_Python_Sharepoint - Fatal编程技术网

Python 如何通过传递用户名和密码登录sharepoint?

Python 如何通过传递用户名和密码登录sharepoint?,python,sharepoint,Python,Sharepoint,我正在使用sharepy和logging连接sharepoint。我已使用下面的代码连接 import sharepy import logging SPUrl = "https://vvv.sharepoint.com" username = "testuserb@vvvv.onmicrosoft.com" password = "aaa@123" s = sharepy.connect(SPUrl,username,password) s.save() headers = {"acc

我正在使用
sharepy
logging
连接sharepoint。我已使用下面的代码连接

import sharepy
import logging


SPUrl = "https://vvv.sharepoint.com"

username = "testuserb@vvvv.onmicrosoft.com"
password = "aaa@123"
s = sharepy.connect(SPUrl,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()
p = s.post("https://aaa.sharepoint.com/sites/vvv/_api/web/getfolderbyserverrelativeurl('/sites/aaa/bbb/')/Files/add(url='"+fileToUpload+"',overwrite=true)", data=content, headers=headers)

print(fileToUpload+" Uploaded in SP")
os.remove(fileToUpload)
logging.info("Uploaded file: with response file")
当我将这些值传递给connect函数时,它抛出了以下错误

Traceback (most recent call last):
File "copyUpload.py", line 18, in <module>
    p = s.post("https://aaa.sharepoint.com/sites/Graphite/_api/web/getfolderbyserverrelativeurl('/sites/aaa/bbb/')/Files/add(url='"+fileToUpload+"',overwrite=true)", data=content, headers=headers)
File "/usr/local/lib/python3.4/dist-packages/sharepy/session.py", line 135, in post
    kwargs["headers"]["Authorization"] = "Bearer " + self._redigest()
File "/usr/local/lib/python3.4/dist-packages/sharepy/session.py", line 111, in _redigest
    data="", headers={"Cookie": self.cookie})
AttributeError: 'SharePointSession' object has no attribute 'cookie'
AttributeError:“SharePointSession”对象没有属性“cookie”

假设,如果我当时没有将该值作为参数在终端中传递,那么在终端上键入该值后,它将要求输入用户名和密码,这样工作正常

但我怎样才能有问题地做到这一点呢

我面临以下错误

Traceback (most recent call last):
File "copyUpload.py", line 18, in <module>
    p = s.post("https://aaa.sharepoint.com/sites/Graphite/_api/web/getfolderbyserverrelativeurl('/sites/aaa/bbb/')/Files/add(url='"+fileToUpload+"',overwrite=true)", data=content, headers=headers)
File "/usr/local/lib/python3.4/dist-packages/sharepy/session.py", line 135, in post
    kwargs["headers"]["Authorization"] = "Bearer " + self._redigest()
File "/usr/local/lib/python3.4/dist-packages/sharepy/session.py", line 111, in _redigest
    data="", headers={"Cookie": self.cookie})
AttributeError: 'SharePointSession' object has no attribute 'cookie'
回溯(最近一次呼叫最后一次):
文件“copyUpload.py”,第18行,在
p=s.post(“https://aaa.sharepoint.com/sites/Graphite/_api/web/getfolderbyserverrelativeurl(“/sites/aaa/bbb/”)/Files/add(url=“+fileToUpload+”,overwrite=true)”,data=content,headers=headers)
文件“/usr/local/lib/python3.4/dist-packages/sharepy/session.py”,第135行,在post中
kwargs[“标题”][“授权”]=“持有人”+自身
文件“/usr/local/lib/python3.4/dist-packages/sharepy/session.py”,第111行,在
data=”“,headers={“Cookie”:self.Cookie})
AttributeError:“SharePointSession”对象没有属性“cookie”

我会检查页面的认证要求。在我看来,它正在寻找用于身份验证的cookie。通常,应用程序需要一个cookie来在经过身份验证后发布数据。在将POST请求发送到服务器之前,请尝试打印出cookie。如果它打印出一些内容,请尝试在POST请求中发送cookie,方法是包括cookie参数。

如果身份验证成功,则库
sharepy
将存储cookie。你可以用这个例子来验证

if not hasattr(s, 'cookie'):
    print("authentication failed!"); quit()
如果身份验证失败,请在保存SharePoint会话之前

常见错误

  • 错误的用户名(检查用户名中的域名是否与您的站点匹配)
  • 密码错误
  • 错误的网站url(没有sharepoint.com后面的其他字符,尤其是没有“/”)

你能发布错误的完整堆栈跟踪吗?@TarunLalwani post edited。你能在屏幕上获得
身份验证成功
吗?@TarunLalwani No在运行自身时抛出错误你的错误在
post
上,但是查看
连接
方法如果身份验证成功,它应该打印一条消息。当身份验证未完成或失败时,将发生上述问题。我无法在没有系统的情况下进行测试,但您应该在调试期间进入库,看看auth中发生了什么,这在
connect
方法中发生了什么