This commit is contained in:
cangui 2025-05-06 22:00:51 +02:00
parent fdece82ee5
commit 4a3cd2ee18

View File

@ -503,45 +503,47 @@ app.post('/testInteractiveImage', async (req, res) => {
return res.status(400).json({ error: 'Non connecté à WhatsApp' }); return res.status(400).json({ error: 'Non connecté à WhatsApp' });
} }
const jid = `${phone}@s.whatsapp.net`; const content = {
viewOnceMessage: {
try { message: {
await sock.sendMessage( messageContextInfo: {
jid, deviceListMetadata: {},
deviceListMetadataVersion: 2
},
interactiveMessage: proto.Message.InteractiveMessage.create({
header: {
hasMediaAttachment: true,
imageMessage: { url: "https://canguidev.fr/static/logo-merlo-cs-FR.jpg" }
},
body: { text: "Bienvenue chez Merlo France 🇫🇷\nChoisissez une action ci-dessous." },
footer: { text: "MERLO - Support & Documentation" },
nativeFlowMessage: {
buttons: [
{ {
image: { url: "https://wa.canguidev.fr/static/logo-merlo-cs-FR.jpg" }, // remplace par une vraie image en HTTPS name: "cta_reply",
caption: "📌 Découvrez notre service interactif !",
title: "Merlo Interactive Demo",
subtitle: "Choisissez une action",
footer: "MERLO France © 2025",
media: true,
interactiveButtons: [
{
name: "quick_reply",
buttonParamsJson: JSON.stringify({ buttonParamsJson: JSON.stringify({
display_text: "📩 Contacter un conseiller", display_text: "📩 Contacter support",
id: "contact_support" id: "support_action"
}) })
}, },
{ {
name: "cta_url", name: "cta_url",
buttonParamsJson: JSON.stringify({ buttonParamsJson: JSON.stringify({
display_text: "🌐 Voir notre site", display_text: "🌐 Voir la fiche produit",
url: "https://canguidev.fr" url: "https://example.com/product"
}) })
} }
] ]
},
{
quoted: null // tu peux y mettre un message si tu veux répondre à un msg précédent
} }
); })
}
}
};
const jid = `${phone}@s.whatsapp.net`;
const msg = generateWAMessageFromContent(jid, content, {});
await sock.relayMessage(jid, msg.message, { messageId: msg.key.id });
res.json({ success: true });
} catch (e) {
console.error("❌ Erreur interactive image :", e);
res.status(500).json({ error: e.message });
}
}); });
// 5) 404 et gestion des erreurs // 5) 404 et gestion des erreurs