GChat自定义方法机器人配置默认action_response后超时返回无法处理请求错误
问题触发原因
- 响应类型与场景不匹配:
DIALOG类型的action_response仅适用于卡片交互触发的弹窗场景,若当前是普通消息响应、或自定义方法未绑定卡片dialog交互,该配置无法被GChat后端识别,即便HTTP状态码返回200,也会被判定为非法响应。 - 配置字段缺失:当前的
DIALOG配置仅声明了action_status为OK,缺少必填的dialog卡片渲染内容字段,GChat等待合法渲染内容超时后,就会抛出处理失败提示。 - 处理超时:GChat要求机器人接口必须在3秒内返回响应,若自定义方法处理耗时超过该阈值,即便后续返回了200状态码,GChat也已经提前向用户返回了错误提示。
修复方案
- 匹配响应类型与场景:如果是普通消息回复场景,替换为
NEW_MESSAGE类型的响应配置,示例如下:
"action_response": { "type": "NEW_MESSAGE", "text": "自定义方法处理后的返回内容" }
- 补全DIALOG配置:若确实需要触发dialog弹窗,需补充dialog的卡片内容配置,示例如下:
"action_response": { "type": "DIALOG", "dialog_action": { "action_status": "OK", "dialog": { "body": { "sections": [ { "widgets": [ // 此处补充dialog对应的卡片组件配置 ] } ] } } } }
- 避免超时:优化自定义方法的处理逻辑,将耗时超过3秒的任务转为异步处理,先向GChat返回即时响应,待异步任务处理完成后,再调用GChat异步消息接口向用户推送最终结果。
内容的提问来源于stack exchange,提问作者Yash Gadodia
相关产品推荐
相关产品推荐

