Push notification Google日历api推送通知:401-未经授权的WebHook回调通道

Push notification Google日历api推送通知:401-未经授权的WebHook回调通道,push-notification,google-calendar-api,Push Notification,Google Calendar Api,这个问题的任何解决方案。这似乎不起作用 { "error": { "errors": [ { "domain": "global", "reason": "push.webhookUrlUnauthorized", "message": "Unauthorized WebHook callback channel: https://xxxxx" } ], "code": 401, "message": "Unauthorized WebHoo

这个问题的任何解决方案。这似乎不起作用

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "push.webhookUrlUnauthorized",
    "message": "Unauthorized WebHook callback channel: https://xxxxx"
   }
  ],
  "code": 401,
  "message": "Unauthorized WebHook callback channel: https://xxxxx"
 }
}
无论如何,要解决此问题,请确保按照以下说明操作:

  • 在Google开发控制台中注册接收URL的域。转到凭据并单击webhook安装程序的域验证
  • 例如,如果您计划使用
    https://yourdomainexample.com/notifications
    作为您的接收URL,您需要注册
    https://yourdomainexample.com
    。 设置接收URL或“Webhook”回调接收器

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

  • 为要监视的每个资源终结点设置通知通道

  • 通道指定通知消息的路由信息。作为频道设置的一部分,您可以标识要接收通知的特定URL。每当频道的资源发生变化时,谷歌日历API就会向该URL发送一条通知消息作为POST请求


    您也可以检查此项以获取其他参考。

    此修复程序帮助我解决了此问题。我在google应用程序授权重定向URL中没有提到回调链接。
    添加后,我能够生成监视事件并能够接收推送通知消息

    推送通知要求您已验证域所有权,因此无法在API资源管理器中创建,因为它不提供将请求与已验证所有权的项目相关联的方法。如果您使用项目凭据,可以在OAuth游乐场中执行此操作,详情如下:

    • 配置API项目:

    • 访问您的API项目
    • 确保您已根据中的说明注册了站点的HTTPS版本
    • 从“产品和服务”菜单(左上角的三条水平线)中,选择“API管理器”,然后选择“已启用的API”选项卡,并确保已启用相应的API
    • 选择“凭据”,然后从“添加凭据”下拉列表中选择“Oauth客户端ID”
    • 如果以前未配置,系统将提示您配置同意屏幕,因此请单击“配置同意屏幕”。如果是,请输入您的电子邮件地址、产品名称,然后单击“保存”
    • 选择“Web应用程序”,然后输入客户端id的名称
    • 在“授权的Javascript源代码”下输入“.”
    • 在“授权重定向URI”下,输入“”
    • 单击“创建客户端ID”
    • 配置OAuth游乐场:

    • 导航到
    • 单击右上角的“OAuth 2.0配置”(齿轮图标)
    • 选中“使用您自己的OAuth凭据”
    • 将API项目的“凭据”页面中的“客户端ID”粘贴到“OAuth客户端ID”
    • 将API项目的“凭据”页面中的“客户端机密”粘贴到“OAuth客户端机密”中
    • 单击“关闭”
    • 授权API请求:

    • 在“输入您自己的范围”中输入
    • 单击“授权API”
    • 系统将提示您允许API访问您的域,因此请单击“允许访问”
    • 您将看到响应“找到HTTP/1.1 302”。单击“令牌交换授权码”
    • 您应该看到“HTTP/1.1200ok”。过一会儿,该页面将下拉到下一节
    • 选择POST作为“HTTP方法”
    • 单击“输入请求正文”,然后输入您的请求,例如:

      {
      “id”:“c887ce64-adc8-4007-952c-a172c376b30d”,
      “类型”:“网钩”,
      “地址”:https://example.com/watch"
      }

    • 完成后单击“关闭”

    • 输入要监视的资源的URI,用适当的日历ID替换{calendarId},例如:
      https://www.googleapis.com/calendar/v3/calendars/user@example.com/events/watch
    • 单击“发送请求”

    • 您应收到类似以下内容的回复:

      {
      “资源ID”:“DmuNd7MI-w7qwW1FxDNf_pdqk7Y”,
      “种类”:“api#频道”,
      “到期日”:“1507327087000”,
      “id”:“c887ce64-adc8-4007-952c-a172c376b30d”,
      “resourceUri”:https://www.googleapis.com/calendar/v3/calendars/user@example.com/events?maxResults=250&alt=json“
      }


    注意:其他API(例如)的推送通知可能有其他参数。查看相关参考文档以了解详细信息。

    noogui:我也遵循了谷歌文档和上述线程中的先决条件,向社区分享您的代码。noogui:我使用的是谷歌Calendr API浏览器。这是为我做的,现在我明白了问题所在,我生成的令牌是为应用程序Oauth Playerd生成的,而不是我自己的应用程序Thanks。我在哪里可以这样做@纳文科蒂