ffff
This commit is contained in:
parent
45324986a2
commit
0aa68d03a9
134
index.js
134
index.js
@ -46,60 +46,6 @@ const initBaileys = async () => {
|
|||||||
sock.ev.on('creds.update', saveCreds);
|
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();
|
initBaileys();
|
||||||
|
|
||||||
app.get('/login', (req, res) => {
|
app.get('/login', (req, res) => {
|
||||||
@ -127,12 +73,7 @@ app.post('/sendButtons', async (req, res) => {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
const content = {
|
const content = {
|
||||||
viewOnceMessage: {
|
|
||||||
message: {
|
message: {
|
||||||
messageContextInfo: {
|
|
||||||
deviceListMetadata: {},
|
|
||||||
deviceListMetadataVersion: 2
|
|
||||||
},
|
|
||||||
interactiveMessage: proto.Message.InteractiveMessage.create({
|
interactiveMessage: proto.Message.InteractiveMessage.create({
|
||||||
body: { text: "Bienvenue sur notre service !" },
|
body: { text: "Bienvenue sur notre service !" },
|
||||||
footer: { text: "Choisis une action ci-dessous" },
|
footer: { text: "Choisis une action ci-dessous" },
|
||||||
@ -143,45 +84,30 @@ app.post('/sendButtons', async (req, res) => {
|
|||||||
nativeFlowMessage: {
|
nativeFlowMessage: {
|
||||||
buttons: [
|
buttons: [
|
||||||
{
|
{
|
||||||
"name": "single_select",
|
name: "cta_reply",
|
||||||
"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\"}]}]}"
|
buttonParamsJson: JSON.stringify({
|
||||||
|
display_text: "📩 Contacter support",
|
||||||
|
id: "support_action"
|
||||||
|
})
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cta_reply",
|
name: "cta_url",
|
||||||
"buttonParamsJson": "{\"display_text\":\"quick_reply\",\"id\":\"message\"}"
|
buttonParamsJson: JSON.stringify({
|
||||||
|
display_text: "🌐 Voir notre site",
|
||||||
|
url: "https://canguidev.fr",
|
||||||
|
merchant_url: "https://canguidev.fr"
|
||||||
|
})
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cta_url",
|
name: "cta_call",
|
||||||
"buttonParamsJson": "{\"display_text\":\"url\",\"url\":\"https://www.google.com\",\"merchant_url\":\"https://www.google.com\"}"
|
buttonParamsJson: JSON.stringify({
|
||||||
},
|
display_text: "📞 Appeler le support",
|
||||||
{
|
id: "+33612345678"
|
||||||
"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": ""
|
|
||||||
}
|
|
||||||
],
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -196,29 +122,33 @@ app.post('/sendButtons', async (req, res) => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
app.post('/sendInteractiveImage', 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é' });
|
if (!sock || !isConnected) return res.status(400).json({ error: 'Non connecté' });
|
||||||
|
|
||||||
try {
|
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`, {
|
await sock.sendMessage(`${phone}@s.whatsapp.net`, {
|
||||||
image: { url: path.join(__dirname, 'public', 'logo-merlo-cs-FR.jpg') },
|
image: resizedBuffer,
|
||||||
caption: 'Description Of Messages',
|
caption: caption || 'Description par défaut',
|
||||||
title: 'Title Of Messages',
|
title: title || 'Titre par défaut',
|
||||||
subtitle: 'Subtile Message',
|
subtitle: subtitle || 'Sous-titre',
|
||||||
footer: 'Footer Messages',
|
footer: footer || 'Pied de page',
|
||||||
media: true,
|
media: true,
|
||||||
interactiveButtons: [
|
interactiveButtons: [
|
||||||
{
|
{
|
||||||
name: 'quick_reply',
|
name: 'cta_url',
|
||||||
buttonParamsJson: JSON.stringify({
|
buttonParamsJson: JSON.stringify({
|
||||||
display_text: 'Display Button',
|
display_text: 'Proposition',
|
||||||
id: 'ID'
|
url: 'https://www.google.com'
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'cta_url',
|
name: 'cta_url',
|
||||||
buttonParamsJson: JSON.stringify({
|
buttonParamsJson: JSON.stringify({
|
||||||
display_text: 'Display Button',
|
display_text: 'Spec machine',
|
||||||
url: 'https://www.google.com'
|
url: 'https://www.google.com'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user