You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何Google Calendar.Events.Watch提示回调地址非HTTPS?

问题排查与解决方案

你遇到的push.webhookUrlNotHttps错误核心原因是Channel对象的参数设置错误,以下是具体分析和修复步骤:

1. 关键错误:混淆了resourceUri和address字段

Google Calendar API的Channel类中,当type设为web_hook时,回调URL需要通过setAddress()方法设置,而非setResourceUri():

  • setResourceUri():用于指定要监控的目标资源的URI(比如某条日历事件的地址),不是WebHook的回调地址
  • setAddress():才是WebHook接收推送通知的回调URL字段

你的请求日志显示请求体里只有resourceUri字段,Google无法识别到合法的HTTPS回调地址,因此抛出错误。

2. 修正后的代码示例

URI uri = new URI("https://example.com/optime/googlecalendar/notifications");
Calendar.Events.Watch watched = service.events().watch(
        "primary",
        new Channel()
                .setId("ChannelID")
                .setType("web_hook")
                .setAddress(uri.toURL().toString()) // 替换为setAddress
);

3. 额外排查点

  • 确认Google Cloud控制台中配置的推送通知地址与你设置的address完全一致(包括HTTPS前缀、路径)
  • 检查服务器反向代理配置,确保外部请求到回调地址时始终使用HTTPS(避免代理层出现HTTP跳转问题)
  • 用curl等工具模拟POST请求测试回调端点是否能正常响应

内容的提问来源于stack exchange,提问作者Lovegiver

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 02:21:02