Невозможно переместить DriveItem в граф Mocrosoft - PullRequest
0 голосов
/ 09 марта 2020

Я использую Python для загрузки файлов PDF из OneDrive в локальную папку, а также перемещаю файлы в другую папку в OneDrive после их загрузки.

Я могу загрузить файлы из OneDrive в локальную папку, однако я получаю ответ 400 при попытке переместить (PATCH) файлы в другую папку OneDrive.

Вот мой успешный код для загрузки файлов:

download_url = 'https://graph.microsoft.com/v1.0/me/drive/items/{item-id}/content'

headers = {'Authorization': 'Bearer ' + json_response['access_token']}

download_url_data = requests.get(download_url, headers=headers)

with open('/Users/Name/Folder/file_name, 'wb') as f:

     f.write(download_url_data.content)

Вот мой неудачный запрос PATCH для перемещения файлов:

move_url = 'https://graph.microsoft.com/v1.0/me/drive/items/{item-id}

move_headers = {'Authorization': 'Bearer ' + json_response['access_token'],
           'Content-Type' : 'application/json'}

move_body = {'parentReference' : {'id' : '01EV3NG2F6Y2GOVW7775BZO354PUSELRRZ'}}

move_file = requests.patch(move_url, headers=move_headers, data=move_body)

return move_file.status_code

Я следовал документации здесь https://docs.microsoft.com/en-us/graph/api/driveitem-move?view=graph-rest-1.0&tabs=http и пробовал разные идентификаторы parentReference, но безуспешно.

Пожалуйста, помогите! Приветствия.

1 Ответ

0 голосов
/ 10 марта 2020

Какой ответ вы получаете (фактическое содержимое рядом с кодом состояния 400)?

Я считаю, что requests.patch должен получать свои данные в виде строки, а не словаря (json) .

Попробуйте:

move_file = requests.patch(move_url, headers=move_headers, data=json.dumps(move_body))

И, конечно же, не забудьте import json

...