Код: Выделить всё
import requests
from shareplum import Office365
# Set Login Info
username = 'my.email@address.com'
password = 'myverifiedapppassword'
site_name = 'mysite'
base_path = 'https://xxxxxxxx.sharepoint.com'
doc_library = 'Shared%20Documents'
file_name = "hellotest.txt" #when your file in the same directory
# Obtain auth cookie
authcookie = Office365(base_path, username=username, password=password).GetCookies()
session = requests.Session()
session.cookies = authcookie
session.headers.update({'user-agent': 'python_bite/v1'})
session.headers.update({'accept': 'application/json;odata=verbose'})
session.headers.update({'X-RequestDigest': 'FormDigestValue'})
response = session.post(url=base_path + "/sites/" + site_name + "/_api/web/GetFolderByServerRelativeUrl('" + doc_library + "')/Files/add(url='a.txt',overwrite=true)",
data="")
session.headers.update({'X-RequestDigest': response.headers['X-RequestDigest']})
# Upload file
with open(file_name, 'rb') as file_input:
try:
response = session.post(
url=base_path + "/sites/" + site_name + f"/_api/web/GetFolderByServerRelativeUrl('" + doc_library + "')/Files/add(url='"
+ file_name + "',overwrite=true)",
data=file_input)
print("response: ", response.status_code) #it returns 200
if response.status_code == '200':
print("File uploaded successfully")
except Exception as err:
print("Something went wrong: " + str(err))
print('File Uploaded Successfully')Проблема возникает при запуске кода....я всегда получаю обратную трассировку и ошибку ключа следующим образом:
Traceback (последний вызов):
Файл "S:\upload.py", строка 22, в
session.headers.update({'X-RequestDigest': response.headers['X-RequestDigest']})
Файл "C:\Python39\lib\site-packages\requests\structures.py", строка 54, в getitem
return self._store[key.lower()][1]
KeyError: 'x-requestdigest'
Что-то связано с x-requestdigest не работает должным образом в строке 22, но я не могу понять, что именно.
Буду признателен за любые советы!!!
спасибо
Подробнее здесь: https://stackoverflow.com/questions/689 ... -shareplum
Мобильная версия