linetype()
我正在尝试请求将file_id复制到请求中列出的父文件夹中。我对Google Drive的api和发出发布请求都是陌生的,我不明白自己在做什么错。我已经在这个问题上工作了多个小时,并且收到一个错误响应代码400 Parse Error。从我收集到的信息来看,这意味着我的请求格式不正确。我已经尝试了很长时间了,我不知道该如何正确地做。如果有人可以帮助我,将不胜感激,或指出我可以自行解决此问题的地方。我一直在阅读文档,也许我咬得更多了才可以咀嚼。谢谢。
答案 0 :(得分:1)
我相信您的目标和情况如下。
requests
复制Google Drive上的文件。为了实现您的目标,我想提出以下修改。
请为查询参数设置fields
,supportsAllDrives
和ignoreDefaultVisibility
的值。
请将fields
从files(id)
修改为id
。
请求正文如下。
data = {
"parents": ["1zaxxxxxxxxxxxxxxxZo"],
"name": selected_name
}
请将data=data
修改为data=json.dumps(data)
。
当以上几点反映到您的脚本时,它如下所示。
import json
import requests
file_id = "###" # Please set the source file ID.
selected_name = "###" # Please set the filename.
headers = {
"Authorization": "Bearer "+creds.token,
"Accept": "application/json",
"Content-Type": "application/json"
}
data = {
"parents": ["1zaxxxxxxxxxxxxxxxZo"], # Please set the folder ID.
"name": selected_name
}
params = {
"fields": "id",
"supportsAllDrives": True,
"ignoreDefaultVisibility": True
}
response = requests.post("https://www.googleapis.com/drive/v3/files/"+file_id+"/copy", data=json.dumps(data), params=params, headers=headers)
response = response.json()
print(response)
运行上述脚本时,将显示以下值。
{'id': '###'}
creds.token
可用于使用Drive API复制文件。请注意这一点。