问题与这篇文章类似(使用 Google Docs API 删除的文档在 Google Drive 中仍然可见无法真正使其与建议的解决方案一起工作。当我们使用 delete() 函数删除文件时,无论该文件是否被删除不是这里的问题,问题是该文件将始终在 Web 浏览器中可见,甚至无法手动删除。我想知道是否有一种方法可以删除该文件,同时使其在 Web UI 中消失?
非常感谢。
在 v3 API 中,您应该能够使用文件的 id 来删除文件。不要忘记对 service.files().delete() 返回的删除对象调用execute()。
import com.google.api.services.drive.model.*;
import com.google.api.services.drive.Drive;
Drive service = ...;
com.google.api.services.drive.model.File file = ...;
service.files().delete(file.getId()).execute();
我使用过以下内容:
public static string DeleteFile(string id)
{
FilesResource.DeleteRequest request = DriveService.Files.Delete(id);
return request.Fetch();
}
我已经使用此功能多次清空我的谷歌驱动器,没有出现任何问题。让我知道这是否适合您。
FilesResource.DeleteRequest request = service.Files.Delete(fileID);
request.Execute();
这是 2020 年修复,v3 api。
P.S:如果有人能告诉我如何进行语法突出显示,那就太好了。
function deleteGoogleDriveFile() {
const fileId = "yourFileId"; // *1;
const access_token = "yourAccessToken"; // *2;
const url = `https://www.googleapis.com/drive/v3/files/${fileId}`;
return await fetch(url, {
method: 'DELETE',
headers: {
'Authorization': `Bearer ${access_token}`
}
}).then(res => res.json());
}
*1 - 您可以通过转到驱动器文件夹 -> 右键单击您的文件 -> 共享 -> 复制链接来找到您的文件ID。在链接 url 中将通过提取找到 yourFileId:
https://drive.google.com/file/d/<yourFileId>/view?usp=drive_link
*2 - 您可以从 Google OAuth 2.0 Playground 获取 yourAccessToken
第1步:选择并授权API -> Drive API v3 -> 选择
https://www.googleapis.com/auth/drive
-> 单击授权API。将显示 Google 帐户选择和同意弹出窗口,选择您的帐户并选择 Allow 继续执行步骤 2。
Step2:兑换令牌授权码:选择兑换令牌授权码,您的AccessToken将显示在请求/响应面板上。