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

Python接收Google驱动器推送通知

邓正真
2023-03-14

自从Drive SDK v3以来,我们能够在文件更改时从Google Drive接收推送通知。目前,我正在使用Python开发一个驱动器应用程序,我希望收到这样的通知。我真的需要一个web服务器吗?或者我可以用套接字或类似的东西来实现这个?

我知道我可以通过轮询changes.list方法来获取更改,但我希望避免这种情况,因为有太多API调用。如果一个文件发生了变化,是否有更好的方法来获得通知?

编辑:我捕获了我的网络流量,看到,原来的谷歌驱动客户端Windows使用推送通知。因此,在某种程度上,它必须能够在桌面应用程序中获得推送通知,但这可能是某种谷歌魔法,我们不能在当前的API中使用

共有1个答案

上官兴昌
2023-03-14

对于需要跟踪文件更改的Google Drive应用程序,changes Collection提供了一种有效的方法来检测所有文件的更改,包括与用户共享的文件。该集合通过提供每个文件的当前状态来工作,当且仅当该文件自给定时间点以来发生了更改。

# Begin with our last saved start token for this user or the
# current token from getStartPageToken()
page_token = saved_start_page_token;
while page_token is not None:
response = drive_service.changes().list(pageToken=page_token,
fields='*',
spaces='drive').execute()
for change in response.get('changes'):
# Process change
print 'Change found for file: %s' % change.get('fileId')
if 'newStartPageToken' in response:
# Last page, save this token for the next polling interval
saved_start_page_token = response.get('newStartPageToken')
page_token = response.get('nextPageToken')
 类似资料:
  • 我认为通过使用,我可以捕获请求正文,但事实是它什么也没有捕获。如果我理解正确,我应该收到一个结构在这里详细说明的变更资源。是我做错了什么,还是我理解错了?我很感激任何可以给予的洞察力和提前感谢!

  • 我看过这个问题。我有完全相同的问题,但我有来自Thawte的有效ssl证书。我只使用id、type和address属性进行了观察请求,如这里所述。我的address属性类似于 我甚至没有收到同步消息。会出什么问题?

  • 我正在使用API explorer和Chrome Advanced Rest Client根据给定的示例观看事件资源。https://developers.google.com/google-apps/calendar/v3/push#watch_request_examples 要求 回应 > 我在google上搜索了这个问题,但找不到太多帮助。 有人能告诉我,请求有什么问题吗?

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

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

  • 我在google cloud上使用推送通知,但出于某种原因,我无法在模拟器上接收推送通知。 但是,当我在实际设备上测试时,相同的应用程序确实会收到通知。