This commit is contained in:
julien 2025-05-07 09:14:01 +02:00
parent 7f0ba5a600
commit c4ce874b39

217
index.js
View File

@ -466,117 +466,7 @@ app.post('/sendProductMessage', async (req, res) => {
return res.status(500).json({ error: e.message });
}
});
<<<<<<< HEAD
app.post('/testViewOnce', async (req, res) => {
=======
app.post('/testProductMessage', async (req, res) => {
const { phone } = req.body;
if (!sock || !isConnected) {
return res.status(400).json({ error: 'Non connecté à WhatsApp' });
}
const jid = `${phone}@s.whatsapp.net`;
try {
await sock.sendMessage(
jid,
{
product: {
productImage: { url: "https://wa.canguidev.fr/static/logo-merlo-cs-FR.jpg" }, // image du produit
productImageCount: 1,
title: "Tracteur Merlo TF38.10",
description: "Charge maximale 3.8T, hauteur 10m",
priceAmount1000: 49500 * 1000, // 49 500 €
currencyCode: "EUR",
retailerId: "MERLO-FR-001",
url: "https://example.com/product/tf38-10"
},
businessOwnerJid: "1234@s.whatsapp.net",
caption: "🛒 Découvrez notre nouveau modèle Merlo TF38.10",
title: "Offre Spéciale Merlo",
footer: "MERLO France • Offre valable jusqu'au 30/06",
media: true,
interactiveButtons: [
{
name: "quick_reply",
buttonParamsJson: JSON.stringify({
display_text: "📩 Demander un devis",
id: "request_quote"
})
},
{
name: "cta_url",
buttonParamsJson: JSON.stringify({
display_text: "🌐 Voir la fiche produit",
url: "https://example.com/product/tf38-10"
})
}
]
},
{
quoted: null // ou remplace par un message existant si tu veux répondre à un msg
}
);
res.json({ success: true });
} catch (e) {
console.error('❌ Erreur envoi produit :', e);
res.status(500).json({ error: e.message });
}
});
app.post('/testInteractiveImage', async (req, res) => {
const { phone } = req.body;
if (!sock || !isConnected) {
return res.status(400).json({ error: 'Non connecté à WhatsApp' });
}
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" }
},
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"
})
}
]
}
})
}
}
};
const jid = `${phone}@s.whatsapp.net`;
const msg = generateWAMessageFromContent(jid, content, {});
await sock.relayMessage(jid, msg.message, { messageId: msg.key.id });
});
app.post('/testButtons2', async (req, res) => {
>>>>>>> 15e5852440e045e5e8529d63206d79288ac62dab
const { phone } = req.body;
if (!sock || !isConnected) {
@ -587,7 +477,6 @@ app.post('/testButtons2', async (req, res) => {
try {
await sock.sendMessage(jid, {
<<<<<<< HEAD
image: {
url: 'https://wa.canguidev.fr/static/logo-merlo-cs-FR.jpg' // Ton image publique
},
@ -598,112 +487,6 @@ app.post('/testButtons2', async (req, res) => {
res.json({ success: true });
} catch (e) {
console.error('❌ Erreur testViewOnce :', e);
=======
text: '📚 *Veuillez choisir le document à télécharger :*',
footer: '© Fizzxy Dev',
buttons: [
{
buttonId: 'doc_1',
buttonText: { displayText: 'Télécharger Document 1' },
type: 1,
},
{
buttonId: 'doc_2',
buttonText: { displayText: 'Télécharger Document 2' },
type: 1,
}
],
headerType: 1, // Texte seulement
});
res.json({ success: true });
} catch (e) {
console.error('❌ Erreur testButtons :', e);
res.status(500).json({ error: e.message });
}
});
app.post('/testButtons3', async (req, res) => {
const { phone } = req.body;
if (!sock || !isConnected) {
return res.status(400).json({ error: 'Non connecté' });
}
const jid = `${phone}@s.whatsapp.net`;
let msg = generateWAMessageFromContent(m.chat, {
viewOnceMessage: {
message: {
"messageContextInfo": {
"deviceListMetadata": {},
"deviceListMetadataVersion": 2
},
interactiveMessage: proto.Message.InteractiveMessage.create({
body: proto.Message.InteractiveMessage.Body.create({
text: "Fizzxy Dev"
}),
footer: proto.Message.InteractiveMessage.Footer.create({
text: "Bot"
}),
header: proto.Message.InteractiveMessage.Header.create({
title: "Igna",
subtitle: "test",
hasMediaAttachment: false
}),
nativeFlowMessage: proto.Message.InteractiveMessage.NativeFlowMessage.create({
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": ""
}
],
})
})
}
}
}, {})
try {
await sock.relayMessage(msg.key.remoteJid, msg.message, { messageId: msg.key.id })
res.json({ success: true });
} catch (e) {
console.error('❌ Erreur testButtons :', e);
>>>>>>> 15e5852440e045e5e8529d63206d79288ac62dab
res.status(500).json({ error: e.message });
}
});