Как получить содержимое файла в папке sharepoint O365 с помощью Graph API - PullRequest
0 голосов
/ 03 мая 2019

Использование Python и пакетов adal и запросов Я пытаюсь использовать API MS graph для поиска файлов на sharepoint (при указании имени сайта sharepoint, имени папки, в которой должен находиться файл, и имени файла.

Используя различные звонки, я могу сделать следующее

  1. Получить токен аутентификации (используя аутентификацию пользователя для приложения, которое имеет полное разрешение на использование учетных данных пользователей и выполнять все операции чтения / записи для файлов, к которым осуществляется доступ)

  2. установить действительный сеанс

  3. поиск сайтов и получение информации о моем текущем сайте

microsoft_info = SESSION.get('https://graph.microsoft.com/v1.0/sites?search=nameOfSite')
  1. Получение информации о диске, связанной с сайтом
for site in microsoft_info['value']:
    if site['displayName'] == siteDisplayNameInput:
        siteId = site['id']
        drives = SESSION.get("https://graph.microsoft.com/v1.0/sites/"+siteId+"/drives")
        drives = drives.json()
  1. Получить информацию о файле с интересующего диска
        for drive in drives['value']:
            if(drive['name']) == folderNameInput:
                driveId = drive['id']
                files = SESSION.get("https://graph.microsoft.com/v1.0/drives/" + driveId +"/root/search(q='')")
                files = files.json()

А затем в пункте 6 все разваливается, и я получаю 404 сообщения об ошибках, говорящих о том, что ресурс не найден - несмотря на использование идентификаторов, предоставленных API, которые четко указывают на наличие ресурса.

                    if file['name'] == 'Pipeline Pilot Forms.pptx':
                        print("List of properties on file")
                        for x in file:
                            print(x+" "+str(file[x]))
                        fileId = file['id']
                        print(fileId)
callToDLFile = SESSION.get("https://graph.microsoft.com/v1.0/drives/"+driveId+"/items/"+fileId+"/content"

, похоже, код, который должен работать для этого (отступ, похоже, не смог скопировать что-то в это, но это все хорошо), но он возвращает 404 ошибки - любая помощь будет принята с благодарностью, я не вижу (в достаточно длительном поиске) все, что точно соответствует этой проблеме.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...