当前位置: 首页 > 知识库问答 >
问题:

如何使用驱动器推送通知从驱动器API获取通知的事件名称?

丁立果
2023-03-14
        notificationchannel.setAddress("https://www.XXXXXX.in/drive/receive/notifications");
        notificationchannel.setType("web_hook");
        notificationchannel.setId(UUID.randomUUID().toString());
        notificationchannel.setExpiration(new Date().getTime() + 86340000);

        userDriveService = (Drive)inUtilityObj.getDriveService(userEmail);

        if(userDriveService != null) {
            StartPageToken pageToken = userDriveService.changes().getStartPageToken().execute();
            Channel changesChannel   = userDriveService.changes().watch(pageToken.getStartPageToken(), notificationchannel).execute();
        }
   try {
        String nextPageToken = savedStartPageToken;
        while (nextPageToken != null) {
          ChangeList changes = driveService.changes().list(nextPageToken).execute();
          log.warning(" *** ChangeList ::" + changes.getChanges());
          for (Change changeObj : changes.getChanges()) {
              log.warning("File Id::"+changeObj.getFileId() + ",Kind ::"+changeObj.getKind() + ", Team Drive ID::"+changeObj.getTeamDriveId() + ", Type::"+changeObj.getType()+ ",File ::"+changeObj.getFile()+ ", Is Removed::"+changeObj.getRemoved()+ ",Time ::"+changeObj.getTime());
          }
          if (changes.getNewStartPageToken() != null) {
            // Last page, save this token for the next polling interval
            savedStartPageToken = changes.getNewStartPageToken(); // store in database
            log.warning("savedStartPageToken ::" + savedStartPageToken);
          }
          nextPageToken = changes.getNextPageToken();
          log.warning("nextPageToken ::" + nextPageToken);
        }
    }catch(Exception ex) {
        ErrorHandler.errorHandler(this.getClass().getSimpleName(), ex);
    }

如何从google Drive获得通知响应中的事件名称?

例如:如果我关闭文件,那么事件名称作为响应,如close等。

共有1个答案

濮阳立果
2023-03-14

在搜索了获取带有事件名称的通知的方式后,我已经发现:

  1. 无法使用更改监视请求获取事件名称。
  2. 我们可以使用文件监视请求在通知中获取事件名称。

请随时访问关于提出观察请求的文章以获得更多信息。

 类似资料:
  • 自从Drive SDK v3以来,我们能够在文件更改时从Google Drive接收推送通知。目前,我正在使用Python开发一个驱动器应用程序,我希望收到这样的通知。我真的需要一个web服务器吗?或者我可以用套接字或类似的东西来实现这个? 我知道我可以通过轮询changes.list方法来获取更改,但我希望避免这种情况,因为有太多API调用。如果一个文件发生了变化,是否有更好的方法来获得通知?

  • 我想知道Git上有没有在android应用程序上实现Drive REST Api推送通知的例子? 我的应用程序目前是基于GDAA构建的,但它不支持我需要的文件更改的实时通知,文档也不是特别清楚如何在java中发送post请求,在哪里发送等等。 我怀疑这个用户的工作是我需要的,但他没有发布他的完整代码。Google Drive REST API通知对应用程序文件夹中的更改无效

  • 问题内容: 尽管Java的简单,接口驱动的事件通知框架早于寒武纪就已经存在(例如,java.beans.PropertyChangeSupport),但是使用注释驱动的事件通知的框架正变得越来越流行。 有关示例,请参见JBossCache 2.2。侦听器类的侦听器方法带有注释,而不是遵循严格的接口。因为您不必编写您不感兴趣的侦听器回调的空实现(而且是的,我知道侦听器适配器超类),所以这更容易编程和

  • 我目前正在开发谷歌驱动器和外部存储之间的系统同步文件。我正在尝试处理推送通知。我已经可以为他们注册并接收他们了。在收到每个通知后,我使用适当的endpoint获取更改列表,并在必要时尝试获取文件的新版本,因此流程如下: 使用 接收一些带有url的推送消息以更改 使用API和提供的查询来获取对endpoint的更改 筛选特定时刻后更改的项 获取文件内容并将其传输到另一个服务 似乎在最初的通知消息后,

  • 我阅读了Google Drive API用于推送通知,似乎有一种方法可以将通道设置为永不过期,但我没有找到如何这样做的文档。我尝试将ttl参数设置为0和null,这两次API返回的过期时间都是从调用时开始的3600秒(默认值)。有关文档中提到能够将通道设置为永不过期的地方,请参见此摘录: 更新通知通道 任何人谁知道如何设置这永远不会过期(或如果在这种情况下没有办法)请让我知道!

  • 最近推出的推送通知服务非常酷,看起来比以前需要的轮询有了很大的改进。 我想知道如何启用在驱动器上共享文件夹中的所有文件的观看。我们正在开发驱动器监控工具,它可以保存所有更改的列表,并支持整个企业驱动器文件夹的报告。 我知道我可以在更改提要中使用关于新对象的通知。不幸的是,您无法检测更改资源中的更改内容。 当查看文件资源时,您可以收到通知,说明文件的哪些内容发生了更改(父级、权限、元数据等)。这是伟