使用Google Chat Webhook在线程发消息的PowerShell脚本问题
Google Chat Webhook 线程创建失败问题排查
你当前的问题在于仅通过URL参数传递threadKey,没有在消息体中正确指定线程关联信息,导致Google Chat无法识别两条消息属于同一线程。
错误原因
Google Chat的传入Webhook要求,线程关联必须通过消息体中的thread对象来指定,仅在URL中添加threadKey参数无法触发线程关联逻辑。
修正后的PowerShell代码
$webhookURL = "https://chat.googleapis.com/v1/spaces/SPACE_ID/messages?key=SPACE_KEY&token=SPACE_TOKEN" $message_headers = @{"Content-Type"="application/json"; "charset"="UTF-8"} # 构造创建线程的消息体,包含threadKey $message_body = @{ text = "事件相关问题:初始消息" thread = @{ threadKey = "MY_KEY" } } | ConvertTo-Json # 发送初始消息,创建线程 Invoke-RestMethod -Method Post -Uri $webhookURL -Headers $message_headers -Body $message_body # 构造回复线程的消息体,使用相同的threadKey $new_body = @{ text = "事件相关问题:后续回复" thread = @{ threadKey = "MY_KEY" } } | ConvertTo-Json # 发送回复到同一线程 Invoke-RestMethod -Method Post -Uri $webhookURL -Headers $message_headers -Body $new_body
关键注意事项
- 移除URL中的
threadKey参数,将其移至消息体的thread对象内,这是Webhook关联线程的标准方式。 - 初始消息和所有回复消息必须使用完全一致的
threadKey,否则Chat会将它们视为独立消息。 - 必须通过
ConvertTo-Json将哈希表转换为JSON格式,确保消息结构符合Google Chat的API要求(你的原代码可能缺失了这一步,导致消息解析异常)。
内容的提问来源于stack exchange,提问作者Ken
相关产品推荐
相关产品推荐

