From 0aa68d03a9b2251de10d71ae4a04c1baf5402850 Mon Sep 17 00:00:00 2001 From: julien Date: Tue, 6 May 2025 14:28:20 +0200 Subject: [PATCH] ffff --- index.js | 166 ++++++++++++++++--------------------------------------- 1 file changed, 48 insertions(+), 118 deletions(-) diff --git a/index.js b/index.js index 87a6102..592e8e2 100644 --- a/index.js +++ b/index.js @@ -46,60 +46,6 @@ const initBaileys = async () => { sock.ev.on('creds.update', saveCreds); }; -async function generateMediaMessage(sock, type, url) { - const generated = await generateWAMessageContent( - { [type]: { url } }, - { upload: sock.waUploadToServer } - ); - return generated[`${type}Message`]; -} - -async function sendInteractive(sock, jid, imageUrl) { - const imageMsg = await generateMediaMessage(sock, 'image', imageUrl); - - const content = { - viewOnceMessage: { - message: { - messageContextInfo: { - deviceListMetadata: {}, - deviceListMetadataVersion: 2, - }, - interactiveMessage: proto.Message.InteractiveMessage.create({ - body: { text: 'Quel produit vous intéresse ?' }, - footer: { text: 'Répondez via un bouton' }, - header: { - title: 'Menu produits', - hasMediaAttachment: true, - imageMessage: imageMsg, - }, - nativeFlowMessage: { - buttons: [ - { - name: 'quick_reply', - buttonParamsJson: JSON.stringify({ - display_text: '📦 Voir produits', - id: '.produits', - }), - }, - { - name: 'ctl_url', - buttonParamsJson: JSON.stringify({ - display_text: '🛒 Visiter boutique', - url: 'https://canguidev.fr', - merchant_url: 'https://canguidev.fr', - }), - }, - ], - }, - }), - }, - }, - }; - - const msg = generateWAMessageFromContent(jid, content, {}); - await sock.relayMessage(jid, msg.message, { messageId: msg.key.id }); -} - initBaileys(); app.get('/login', (req, res) => { @@ -127,61 +73,41 @@ app.post('/sendButtons', async (req, res) => { try { const content = { - viewOnceMessage: { - message: { - messageContextInfo: { - deviceListMetadata: {}, - deviceListMetadataVersion: 2 + message: { + interactiveMessage: proto.Message.InteractiveMessage.create({ + body: { text: "Bienvenue sur notre service !" }, + footer: { text: "Choisis une action ci-dessous" }, + header: { + title: "Menu principal", + hasMediaAttachment: false }, - interactiveMessage: proto.Message.InteractiveMessage.create({ - body: { text: "Bienvenue sur notre service !" }, - footer: { text: "Choisis une action ci-dessous" }, - header: { - title: "Menu principal", - hasMediaAttachment: false - }, - nativeFlowMessage: { - buttons: [ - { - "name": "single_select", - "buttonParamsJson": "{\"title\":\"title\",\"sections\":[{\".menu\":\".play dj webito\",\"highlight_label\":\"label\",\"rows\":[{\"header\":\"header\",\"title\":\"title\",\"description\":\"description\",\"id\":\"id\"},{\"header\":\"header\",\"title\":\"title\",\"description\":\"description\",\"id\":\"id\"}]}]}" - }, - { - "name": "cta_reply", - "buttonParamsJson": "{\"display_text\":\"quick_reply\",\"id\":\"message\"}" - }, - { - "name": "cta_url", - "buttonParamsJson": "{\"display_text\":\"url\",\"url\":\"https://www.google.com\",\"merchant_url\":\"https://www.google.com\"}" - }, - { - "name": "cta_call", - "buttonParamsJson": "{\"display_text\":\"call\",\"id\":\"message\"}" - }, - { - "name": "cta_copy", - "buttonParamsJson": "{\"display_text\":\"copy\",\"id\":\"123456789\",\"copy_code\":\"message\"}" - }, - { - "name": "cta_reminder", - "buttonParamsJson": "{\"display_text\":\"Recordatorio\",\"id\":\"message\"}" - }, - { - "name": "cta_cancel_reminder", - "buttonParamsJson": "{\"display_text\":\"cta_cancel_reminder\",\"id\":\"message\"}" - }, - { - "name": "address_message", - "buttonParamsJson": "{\"display_text\":\"address_message\",\"id\":\"message\"}" - }, - { - "name": "send_location", - "buttonParamsJson": "" - } - ], - } - }) - } + nativeFlowMessage: { + buttons: [ + { + name: "cta_reply", + buttonParamsJson: JSON.stringify({ + display_text: "📩 Contacter support", + id: "support_action" + }) + }, + { + name: "cta_url", + buttonParamsJson: JSON.stringify({ + display_text: "🌐 Voir notre site", + url: "https://canguidev.fr", + merchant_url: "https://canguidev.fr" + }) + }, + { + name: "cta_call", + buttonParamsJson: JSON.stringify({ + display_text: "📞 Appeler le support", + id: "+33612345678" + }) + } + ] + } + }) } }; @@ -196,29 +122,33 @@ app.post('/sendButtons', async (req, res) => { }); app.post('/sendInteractiveImage', async (req, res) => { - const { phone } = req.body; + const { phone, caption, title, subtitle, footer } = req.body; if (!sock || !isConnected) return res.status(400).json({ error: 'Non connecté' }); try { + const imagePath = path.join(__dirname, 'public', 'logo-merlo-cs-FR.jpg'); + const sharp = require('sharp'); + const resizedBuffer = await sharp(imagePath).resize(600, 400).toBuffer(); + await sock.sendMessage(`${phone}@s.whatsapp.net`, { - image: { url: path.join(__dirname, 'public', 'logo-merlo-cs-FR.jpg') }, - caption: 'Description Of Messages', - title: 'Title Of Messages', - subtitle: 'Subtile Message', - footer: 'Footer Messages', + image: resizedBuffer, + caption: caption || 'Description par défaut', + title: title || 'Titre par défaut', + subtitle: subtitle || 'Sous-titre', + footer: footer || 'Pied de page', media: true, interactiveButtons: [ { - name: 'quick_reply', + name: 'cta_url', buttonParamsJson: JSON.stringify({ - display_text: 'Display Button', - id: 'ID' + display_text: 'Proposition', + url: 'https://www.google.com' }) }, { name: 'cta_url', buttonParamsJson: JSON.stringify({ - display_text: 'Display Button', + display_text: 'Spec machine', url: 'https://www.google.com' }) }