drive.changes.watch 不发送通知

Posted

技术标签:

【中文标题】drive.changes.watch 不发送通知【英文标题】:drive.changes.watch don't sends notifications 【发布时间】:2016-04-09 18:45:55 【问题描述】:

我将 googleapis npm 包 ("apis/drive/v3.js") 用于 Google Drive 服务。在后端,我使用 NodeJSngrok 进行本地测试。我的问题是我无法收到通知。 以下代码:

    drive.changes.watch(
        pageToken: startPageToken,
        resource: 
            id: uuid.v1(),
            type: 'web_hook',
            address: 'https://7def94f6.ngrok.io/notifications'
        
    , function(err, result) 
        console.log(result)
    );

返回一些类似:


    kind: 'api#channel',
    id: '8c9d74f0-fe7b-11e5-a764-fd0d7465593e',
    resourceId: '9amJTbMCYabCkFvn8ssPrtzWvAM',
    resourceUri: 'https://www.googleapis.com/drive/v3/changes?includeRemoved=true&pageSize=100&pageToken=6051&restrictToMyDrive=false&spaces=drive&alt=json',
    expiration: '1460227829000'

当我尝试更改 Google 云端硬盘中的任何文件时,都不会收到通知。亲爱的大学,怎么了?

【问题讨论】:

您是否在 Google 注册并验证了7def94f6.ngrok.io?看到这个页面:developers.google.com/drive/v3/web/push#overview 是的,我有!但是,当我尝试在这里传递参数时:developers.google.com/drive/v3/reference/changes/watch#try-it 我得到了这个错误:“error”:“errors”:[“domain”:“global”,“reason”:“push.webhookUrlUnauthorized”,“ message": "未经授权的 WebHook 回调通道:7def94f6.ngrok.io/notifications" ], "code": 401, "message": "未经授权的 WebHook 回调通道:7def94f6.ngrok.io/notifications" 【参考方案1】:

这应该是一条评论,但我没有足够的(50 分)经验来发表评论。抱歉,如果这不是一个真正的答案,但可能会有所帮助。

我今天学到了这一点。我和你做的几乎一样——只是不是使用 Drive,而是使用 Gmail api。 我看到你有这个错误:

"push.webhookUrlUnauthorized", "message": "Unauthorized WebHook etc..."

我认为这是因为以下两个原因之一:

    您没有授予 Drive-api 发布者对您的主题的权限。

    其次,如果您想接收通知,则必须在服务器(您的项目)和您的发布/订阅服务(Google Cloud)上都设置授权的 webHooks Url。

见下文 - 对我来说,此设置有效:

1. Create a topic

 2. Give the Drive publish permissions to your topic. This is done by adding the Drive scope in the box and following steps 2 and 3.

3. Configure authorized WebHooks. Form the Create Topic page - click on add subscriptions. Not rely vizible here but once you are there you can manage.

【讨论】:

感谢 Alon 提供如此详细的描述。我按照你的指南,但我有同样的问题。最近,在这里创建了新问题 (***.com/questions/36528336/…)

以上是关于drive.changes.watch 不发送通知的主要内容,如果未能解决你的问题,请参考以下文章

解析服务器不向大量受众发送推送通知

当用户不打开应用程序时如何发送通知?

Firebase 云功能不发送异步推送通知

地理围栏不发送通知 (iOS)

如何在不唤醒 Android 屏幕的情况下发送通知

通知发送,接收不到通知的处理办法