如何将 Google Drive 推送通知响应链接到更改的文件

Posted

技术标签:

【中文标题】如何将 Google Drive 推送通知响应链接到更改的文件【英文标题】:How to link Google Drive Push Notification Response to a changed file 【发布时间】:2016-04-21 01:43:26 【问题描述】:

我正在尝试使用 google drive api 并使用它创建一个应用程序。

我的目标是将文件上传到驱动器,并从驱动器下载最新版本。当我在驱动器中打开文件时,我已经创建了通道。

我正在创建对所有更改的监视,而不仅仅是文件。据我了解,这意味着它将通知我所有文件的所有更改。

现在,如果我更改文件,我会收到来自驱动器的通知 POST 响应。在文档中,我看到 ResourceId 对我们没有任何意义。

那么我应该如何将通知响应映射到文件,以便使用获取文件从驱动器下载更改的文件。

请指导。

【问题讨论】:

不需要ResourceId是什么意思。这是您要查看的文件的 ID。您是否已经实现了任何代码? 嗨@noogui,ResourceId 不是fileId。我编辑了不同的文件,但 resourceId 始终相同,并且与我更改的任何文件都不匹配。我已经测试过了。另外,我关于 ResourceId 不需要的声明来自这个视频:youtube.com/watch?v=r3g_oT03nmQ 来自谷歌关于 PushNotifications 的文档。 【参考方案1】:

要使用推送通知,您需要做三件事:

注册您的接收 URL 的域。

例如,如果您计划将 mydomain.com/notifications 用作 您的接收 URL,您需要注册 mydomain.com。设置 您的接收 URL,或“Webhook”回调接收器。

这是一个 HTTPS 服务器,用于处理资源更改时触发的 API 通知消息。

为您要观看的每个资源端点设置通知通道。

通道指定通知消息的路由信息​​。作为通道设置的一部分,您确定要接收通知的特定 URL。每当频道的资源发生变化时,Drive API 都会将通知消息作为 POST 请求发送到该 URL。

您将编写watch requests 以查看对特定资源的更改。查看此Drive Push guide 了解更多信息。

【讨论】:

感谢@noogui,我能够基于为每个资源创建通道来实现它。我发现资源ID是文件存储在谷歌驱动器中的文件夹ID。我想确认的一件事是这些频道有过期时间,它们不会在几个小时后停留,之后不会发送任何通知。一种解决方案是在频道过期后创建另一个频道。还有其他解决方案吗?通道的过期时间是多少?修复了吗?

以上是关于如何将 Google Drive 推送通知响应链接到更改的文件的主要内容,如果未能解决你的问题,请参考以下文章

Google Drive API 推送通知订阅 400“解析错误”

Google drive webhook 通知请求正文为空

iOS应用可以直接接收Google Drive推送通知吗?

Google Drive API - 未收到推送通知(基本身份验证)

Google 推送通知 - 未经授权的 WebHook 回调通道

Drive SDK REST 推送通知