谷歌日历推送通知:未经授权的 webhook 调用

Posted

技术标签:

【中文标题】谷歌日历推送通知:未经授权的 webhook 调用【英文标题】:Google calendar push notification : Unauthorized webhook call 【发布时间】:2017-07-20 21:08:26 【问题描述】:

目前我们正在开发一款处理谷歌日历的 iPhone 应用程序。需要将日历事件同步到服务器端。一切正常。

但是对于推送通知,我们关注this process

每当我们将请求发布到: https://www.googleapis.com/calendar/v3/calendars/email@gmail.com/events/watch

带参数

"id":Unique string ( channel id) ,  
"type": "web_hook",
"address": "https://abc-api.herokuapp.com/user/notifications"

在标题中,我们正在发送

Authorization : **Bearer 'Access_token'** 

和内容类型:json

我们已经在 google api 控制台中将域添加为授权域

Access_token 是用户的账户访问令牌。

我们收到“未经授权的 webhook 调用”错误。

    
  "error": 
    "errors": [
      
        "domain": "global",
        "reason": "push.webhookUrlUnauthorized",
        "message": "Unauthorized WebHook callback channel: https://abc-api.herokuapp.com/user/notifications"
      
    ],
    "code": 401,
    "message": "Unauthorized WebHook callback channel: https://abc-api.herokuapp.com/user/notifications"
  

这里有谁能帮我们解决这个问题吗?

【问题讨论】:

【参考方案1】:

一个潜在的问题是,如果您在文档的 Google 的“试用”部分进行测试。没有说明,但是这个特定的请求在那里不起作用。

否则,您在地址中提供的域需要发生一些事情。首先,您需要确保它在谷歌开发者控制台中的verified 用于您正在使用 api 的应用程序。此外,您需要add the website property to your search console(即使它只是一个 api)并验证所有权。

此外,一旦您解决了未经授权的地址问题,您将收到另一个需要提供 resourceId 的错误。

【讨论】:

【参考方案2】:

您可能需要检查此post,提供解决方案,例如验证您的域是否具有有效(非自签名)SSL license。同样在google-api-php-client GitHub,而不是设置https://example.com/google/push(导致未经授权的WebHook回调通道)或https://www.example.com/google/push(允许我成功打开通道,并且对象已返回,但未触发webhook)作为他们尝试的地址@ 987654326@ 工作。

【讨论】:

以上是关于谷歌日历推送通知:未经授权的 webhook 调用的主要内容,如果未能解决你的问题,请参考以下文章

谷歌日历关注事件更新

停止谷歌推送通知,回复“找不到项目的频道”

Android推送通知未经授权的错误401

在 GCM 中发送推送通知时出现未经授权的错误

在 ASP.NET 中为 manifest.json GCM 推送通知获取未经授权的 401

Google 日历推送通知 - 发送到源本身的通知