我试图在编辑驱动器文件时获取推送通知。 在我尝试从Google云端硬盘UI中删除这些文件夹之前一切正常。他们从用户界面中消失了,但我的服务仍然像他们在场一样接收它们。
try {
configdata = dao.getConfigByChannelId(channelId,IntegrationType.DRIVE);
System.out.println("ACCESS TOKEN FOR CHANNEL ID: " + configdata.getAccessToken());
GoogleCredential credential = new GoogleCredential().setAccessToken(configdata.getAccessToken());
Drive service = new Drive.Builder(httpTransport, jsonFactory, null)
.setApplicationName("Akoonu")
.setHttpRequestInitializer(credential).build();
Files.List files = service.files().list();
try {
Change change = service.changes().get(String.valueOf((Integer.parseInt(changeId) - 1))).execute();
System.out.println("Changed file ID: " + change.getFileId());
System.out.println("Check delete case: " + change.getDeleted());
if (change.getDeleted()) {
System.out.println("File has been deleted");
File changedFile = change.getFile();
strpath.replace(changedFile.getTitle(), "");
String path = strpath.replace(changedFile.getTitle(), "");
//deleteItem = iao.getIventoryItemByFilePathAndConfigId(changedFile.getTitle(), path, configdata.getId(), configdata.getAccountId());
deleteItem = iao.getIventoryItemByExternalId(changedFile.getId(), configdata.getId(), configdata.getAccountId());
itemService.deleteInventoryItem(deleteItem.getId(), deleteItem.getAccountId());
//deleteFilePathList.add(metadata.getPathDisplay().substring(1));
} else {
File changedFile = change.getFile();
System.out.println("Changed file Title: " + changedFile.getTitle());
.
.
.
.
.
我已经尝试了很多样本,但仍未修复.Plz帮帮我。谢谢
答案 0 :(得分:1)
我在项目中也遇到了这类问题,但经过很长一段时间我得到了解决方案。
请在代码中使用查询字符串参数,如
Files.List request = service.files().list().setQ("trashed=false");
..
肯定会解决这个问题。
感谢。
答案 1 :(得分:0)
在v3中,有一个“ explicitlyTrashed”被破坏的标志,这就是为我解决(暂时)的问题