无法在 Microsoft Graph 中移动 DriveItem

Can't Move DriveItem in Mocrosoft Graph

我正在使用 Python 将 PDF 文件从 OneDrive 下载到本地文件夹,并在下载后将文件移动到 OneDrive 中的其他文件夹。

我可以将文件从 OneDrive 下载到本地文件夹,但是,当我尝试将文件移动(修补)到另一个 OneDrive 文件夹时收到 400 响应。

这是我成功下载文件的代码:

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 id,但没有成功。

请帮忙!干杯。

您得到的响应是什么(400 状态代码旁边的实际内容)?

我相信 requests.patch 应该以字符串的形式接收它的数据,而不是字典 (json)。

尝试:

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

当然别忘了import json