【问题标题】:Google-drive-java-api-returns-deleted-filesGoogle-drive-java-api-returns-deleted-files
【发布时间】:2016-04-16 13:31:39
【问题描述】:

我试图在编辑该驱动器文件时收到推送通知。 一切都很好,直到我尝试从 Google Drive UI 中删除这些文件夹。它们从 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());


          .
          .
          .
          .
          .

我已经尝试了很多样本​​,但仍然没有修复。请帮助我。谢谢

【问题讨论】:

    标签: google-drive-api


    【解决方案1】:

    我的项目也遇到了这类问题,但经过很长时间我得到了解决方案。

    请在您的代码中使用查询字符串参数,如

    Files.List request = service.files().list().setQ("trashed=false");
     ..
    

    肯定会解决这个问题。

    谢谢。

    【讨论】:

      【解决方案2】:

      在 v3 中有一个“explicitlyTrashed”已丢弃标志,这就是我(目前)解决它的原因

      https://developers.google.com/drive/api/v3/reference/files

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-25
        • 1970-01-01
        • 2015-07-13
        • 1970-01-01
        • 2020-09-18
        • 1970-01-01
        相关资源
        最近更新 更多