1

Я пытаюсь загрузить файл в Sharepoint o365 с помощью приложения питона через REST API, но получаю ошибку Любая помощь приветствуется Заранее спасибо Пожалуйста найти сценарий нижеПолучение ошибки, как Неверный запрос при загрузке файла в SharePoint Online с помощью приложения питона

Код:

url="https://someserver.sharepoint.com/test/test1/_api/web/GetFolderByServerRelativeUrl(@a1)/Files/Add([email protected],overwrite = @a3)[email protected]=%27%2Ftest%2Ftest1%2FShared%20Documents%27&@a2=%27%25"+temp_file_name+"%27&@a3=false" 

req = urllib2.Request(url.encode('utf-8'), data=fragment) 
req.get_method = lambda: 'POST' 
req.add_header('Authorization', 'Bearer ' + session["access_token"]) 
req.add_header("accept", "application/json;odata=verbose") 
req.add_header('X-Target-URI', 'https://someserver.sharepoint.com/_api') 
req.add_header('Content-Type', 'application/octet-stream') 
req.add_header('Content-length', fsize["filesize"]) 
req.add_header('x-requestdigest', Digest_value) 
opener = OpenerCreator.create() 
f = opener.open(req, None, 60) 
resJson = f.read() 
ret_response = json.loads(resJson) 

ответ

0

для взаимодействия с Microsoft Sharepoint вы должны использовать Microsoft Graph API для этого.

Вот главная страница это https://graph.microsoft.io/en-us/docs

Получение файлов с диска https://graph.microsoft.io/en-us/docs/api-reference/v1.0/api/item_downloadcontent

Другой вариант заключается в использовании OneDrive API

запросов на импорт

def handle_file_upload(file_to_upload): 

    """ Function to upload files to our sharepoint directory """ 

    # Getting the authenticated user credentials from python-social-auth 

    # This call assumes the user you are trying to access is the logged in user. 

    social = request.user.social_auth.get(provider='azuread-oauth2') 

    access_token = social.extra_data['access_token'] 



    # build our header for the api call 

    headers = { 

     'Authorization' : 'Bearer {0}'.format(access_token), 

    } 



    # build the url for the api call 

    # Look at https://dev.onedrive.com/items/upload_put.htm for reference 

    url = settings.SOCIAL_AUTH_AZUREAD_OAUTH2_RESOURCE + '/_api/v2.0/drive/root:/' + file_to_upload.name + ':/content' 


    # Make the api call 

    response = requests.put(url, data=open(file_to_upload, 'rb'), headers=headers) 

    return response 
+1

Как это поможет в загрузка документа в SharePoint онлайн –