fix(webhook): sanitize WhatsApp list menu fields — remove emojis from section titles and enforce Meta char limits

This commit is contained in:
marciobever 2026-04-22 15:47:53 -03:00
parent f85a4a3300
commit 55fe0308cd

View file

@ -209,7 +209,12 @@ async function sendWhatsAppListMenu(remoteJid: string, header: string, body: str
headers: { "Content-Type": "application/json", Authorization: `Bearer ${META_ACCESS_TOKEN}` }, headers: { "Content-Type": "application/json", Authorization: `Bearer ${META_ACCESS_TOKEN}` },
body: JSON.stringify(payload) body: JSON.stringify(payload)
}); });
console.log(`[META-WH] SendListMenu status: ${res.status}`); if (!res.ok) {
const errBody = await res.text();
console.error(`[META-WH] SendListMenu FAILED ${res.status}: ${errBody}`);
} else {
console.log(`[META-WH] SendListMenu status: ${res.status}`);
}
} catch (err) { } catch (err) {
console.error("[META-WH] Error sending list menu:", err); console.error("[META-WH] Error sending list menu:", err);
} }
@ -1156,20 +1161,20 @@ RETORNE estritamente 3 bullet points recomendando o que o paciente pode adiciona
await sendWhatsAppListMenu( await sendWhatsAppListMenu(
remoteJid, remoteJid,
"FoodSnap IA e Nutrição", "FoodSnap IA",
"Fala aí! 👋 Sou a FoodSnap, a Inteligência Artificial projetada para revolucionar seu físico.\n\nEscolha uma opção no menu abaixo para navegarmos, ou se preferir, *apenas me mande diretamente a foto do que você está comendo* e eu calculo tudo na hora!", "Fala ai! Sou a FoodSnap, a IA projetada para revolucionar seu fisico.\n\nEscolha uma opcao no menu abaixo, ou se preferir, *mande direto a foto do que voce esta comendo* e eu calculo tudo na hora!",
"Menu Principal 👇", "Abrir Menu",
[ [
{ {
title: "🍽️ Scanners Diários", title: "Scanners Diarios",
rows: [ rows: [
{ id: "action_help_photo", title: "Dicas de Leitura de Prato", description: "Veja as recomendações pro bot não falhar" }, { id: "action_help_photo", title: "Dicas de Fotografia", description: "Veja como tirar a foto perfeita" },
] ]
}, },
{ {
title: "🏋️ Especialistas", title: "Especialistas",
rows: [ rows: [
{ id: "action_coach", title: "Protocolo Coach de Saúde", description: "Gerar plano de treino 100% individual" }, { id: "action_coach", title: "Coach de Saude", description: "Gerar plano de treino individual" },
] ]
} }
] ]