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

使用Google Calendar API Events watch时Webhook返回异常内容求助

问题描述

我通过Google Calendar API的Events watch接口创建了Webhook订阅,用来跟踪特定日历的事件更新。订阅创建成功,当该日历的事件进行创建/更新/删除操作时,Webhook确实会被触发,但Webhook的请求体内容却是:

{"value": "IMTBuffer(0, binary, da39a3ee5e6b4b0d3255bfef95601890afd80709): "}

想请教这是什么情况?

补充说明:该日历不属于我,但我被设置为日历编辑者,它显示在我的日历列表中,我也能通过Calendar API的Events:list接口查询到该日历的事件。

创建Watch事件的请求如下:

POST https://www.googleapis.com/calendar/v3/calendars/name@domain.co.uk/events/watch

请求体:

{
    "id": "{randomUUID}",
    "type": "web_hook",
    "address": "https://hook.eu1.make.com/{idremoved}",
     "params": {
           "ttl": "2592000" }
}

响应状态码200,响应内容:

{
    "kind": "api#channel",
    "id": "{UUID as above}",
    "resourceId": "{IDremoved}",
    "resourceUri": "https://www.googleapis.com/calendar/v3/calendars/name@domain.co.uk/events?alt=json&eventTypes=default",
    "expiration": "1720169269000"
}

原因分析与解决方案

这个IMTBuffer内容是Make(原Integromat)平台处理Webhook请求时的内部格式问题,并非Google Calendar API返回的原始内容:

  1. Google Calendar的Webhook触发时,实际会发送包含channelId、resourceId、resourceUri等关键信息的JSON请求体,不会返回这种Buffer格式内容。
  2. 你使用的https://hook.eu1.make.com/是Make的Webhook端点,平台在接收原始请求时,可能因为二进制解析、编码处理逻辑,把空请求体(或未正确解析的内容)包装成了IMTBuffer格式。

解决步骤:

  • 检查Make的Webhook配置:确认你的Make Webhook模块是否设置了正确的请求体解析方式,比如选择JSON格式解析,而非二进制或原始格式。
  • 验证原始请求:可以临时替换Webhook地址为本地调试工具(如ngrok配合本地服务),直接接收Google发送的原始请求,确认请求体是否正常。如果原始请求内容正确,说明问题完全出在Make的处理逻辑上。
  • 重新创建订阅:虽然当前订阅返回状态正常,但可以重新创建一次Watch订阅,确保resourceId和expiration等参数正常,排除订阅本身的异常。

另外,Google Calendar的Webhook偶尔会发送空请求体作为“心跳”验证,但这种情况不会伴随IMTBuffer格式,所以核心问题还是在Make的请求解析环节。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 22:35:13