发布WhatsApp Flows时遇端点健康检查错误,求排查方案
WhatsApp Flows发布失败问题修复方案
先看你遇到的发布错误截图:
结合你提供的Firebase Cloud Function端点代码,核心问题出在响应格式和请求处理完整性上,以下是具体修正方案:
问题1:响应Content-Type不符合要求
你当前用字符串拼接返回JSON内容,但response.send()传入字符串时会默认设置Content-Type为text/plain,而WhatsApp Flows要求响应必须是application/json格式,这会直接触发验证失败。
问题2:缺少非ping动作的响应逻辑
如果收到非ping的请求,你的代码没有返回任何响应,会导致请求超时或返回错误状态码,同样会导致发布验证不通过。
修正后的完整代码
exports.webhook = functions.https.onRequest((request, response) => { // 强制设置正确的响应头 response.set('Content-Type', 'application/json'); const body = request.body; const { decryptedBody, aesKeyBuffer, initialVectorBuffer } = decryptRequest(body); const { screen, data, version, action } = decryptedBody; if (action === "ping") { // 直接返回JSON对象,避免字符串拼接的格式错误 response.json({ "version": "3.0", "data": { "status": "active" } }); return; } // 处理其他动作或返回默认合规响应 response.json({ "version": "3.0", "data": {} }); });
额外验证要点
- 确认
decryptRequest函数能正确解密WhatsApp的加密请求体,解密失败会导致后续逻辑全部失效 - 检查Firebase Cloud Function的公网可访问性,确保没有被防火墙、CORS策略或地区限制拦截
- 验证响应JSON格式严格符合规范,避免多余逗号、语法错误等格式问题
内容的提问来源于stack exchange,提问作者David Kathoh
相关产品推荐
相关产品推荐

