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