Push notification 设置webhook会导致';未经授权的WebHook回调通道'。一切都会好起来的

Push notification 设置webhook会导致';未经授权的WebHook回调通道'。一切都会好起来的,push-notification,google-api,google-drive-api,Push Notification,Google Api,Google Drive Api,是时候去东南部了,因为这已经花了我4个多小时了 我正在尝试设置webhook(https://app.example.com/notications)用于来自Google Drive API的推送通知 设置完所有内容后,我发现错误: ... errors": [ { "domain": "global", "reason": "push.webhookUrlUnauthorized", "me

是时候去东南部了,因为这已经花了我4个多小时了

我正在尝试设置webhook(
https://app.example.com/notications
)用于来自Google Drive API的推送通知

设置完所有内容后,我发现错误:

    ...
    errors": [
        {
            "domain": "global",
            "reason": "push.webhookUrlUnauthorized",
            "message": "Unauthorized WebHook callback channel: https://app.example.com"
        }
    ],
    ...
谷歌上有几个结果(大部分在SE上)讨论了这个问题。所有提出的解决方案似乎都不适合我。不用说,如果我有头发的话,我会把头发撕得乱七八糟

这就是我所尝试的:

如前所述,有一些要求:

  • 步骤1:验证您是否拥有该域。(使用网站管理员工具完成网站验证过程)

    通过网站管理员工具注册了app.example.com。还分别验证了
    example.com
    ,尽管这不重要检查

  • 步骤2:注册您的域:

    • 转到Google开发者控制台
    • 选择或创建一个项目
    • 在左侧的侧栏中,单击API&auth,然后单击Push
    • 单击添加域
    • 填写表单,然后再次单击添加域
    app.example.com
    完成检查

  • 请注意,只有在web服务器上安装了有效的SSL证书时,驱动器API才能向此HTTPS地址发送通知。无效证书包括:

    • 自签名证书
    • 由不受信任的源签署的证书
    • 已被吊销的证书
    • 主题与目标主机名不匹配的证书
    我所做的:

    • 我已经使用SSL证书设置了app.example.com
    • 此外,端点是可到达的,并且所有内容都可以检查出来
    • 已验证一切正常(5个刻度)。即使SSL链设置正确检查
  • 构造POST查询

    • 到简单的
      https://www.googleapis.com/drive/v2/changes/watch
      端点
    • 包含
      授权:承载x
    • 包含
      内容类型:application/json
  • Post包含一个正文,如下所示

        {
          "id": "someIdThatDoesntMatter",
          "type":"web_hook",
          "address": "https://app.example.com/notifications"
        }
    
    检查

    我通过Postman(一个测试http请求的Chrome扩展)来运行所有这些,所以我身边没有任何应用程序可以干扰


    到底是什么问题呢?

    第四步的正文地址:“应该是”。或者反过来说。无论哪种方式,它们都应该匹配,这样我们就可以理解这仅仅是你文章中的一个输入错误,还是你问题的真正答案

    哦,;在“”中,“通知”拼写错误。应该是:“。。。或者反过来,如果这是你的事情:)

    同样值得注意的是,根据他们的文档:

    除非当前用户或服务帐户拥有或拥有访问此资源的权限,否则监视请求将不会成功


    这很奇怪,但不知怎么的它起作用了

  • 添加域时,请使用带有
    https://app.example.com/notifications
  • 在调用日历API时,请尝试使用尾随斜杠的完整URL

    {
      "id": "someIdThatDoesntMatter",
      "type":"web_hook",
      "address": "https://app.example.com/notifications/"
    }
    

    你对此有什么正确的答案吗?我也有同样的问题,最后在开发者控制台中解决了。在域验证选项卡中,我将我的站点列为example.com。当我把它改成“https://example.com”时,它终于起作用了。希望这能帮助别人!!;)@理查德:在这儿。目前尚未处理此问题,但为了将来参考,您是否打算发布
    https://example.com
    ,包括双正斜杠后的空格?是的。我试图演示https的使用。在没有空间的情况下,我将其转换为链接,隐藏https。我也有这个问题,对此感到沮丧。这个问题解决了吗?我尝试使用icognito窗口注册域,我也尝试在我的代码中而不是在操场中执行此操作,但没有任何效果。此解决方案有效,但要小心过期(即,当您预期通知过期时)。通知似乎在几分钟内过期…仍在试图找出可能的错误。