fgfgfg
This commit is contained in:
parent
7be6748f4a
commit
7b97c7321a
109
index.js
109
index.js
@ -3,6 +3,8 @@ const qrcode = require('qrcode');
|
||||
const path = require('path');
|
||||
const fs = require('fs');
|
||||
const NodeCache = require('node-cache');
|
||||
const mime = require('mime-types');
|
||||
|
||||
const {
|
||||
default: makeWASocket,
|
||||
useMultiFileAuthState,
|
||||
@ -490,6 +492,8 @@ app.post('/testViewOnce', async (req, res) => {
|
||||
res.status(500).json({ error: e.message });
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
app.post('/testHeaderImage', async (req, res) => {
|
||||
const { phone } = req.body;
|
||||
|
||||
@ -500,71 +504,55 @@ app.post('/testHeaderImage', async (req, res) => {
|
||||
const jid = `${phone}@s.whatsapp.net`;
|
||||
|
||||
try {
|
||||
let msg = generateWAMessageFromContent(jid, {
|
||||
// 1. Charger l'image locale
|
||||
const imagePath = path.join(__dirname, 'public/logo-merlo-cs-FR.jpg');
|
||||
const imageBuffer = fs.readFileSync(imagePath);
|
||||
|
||||
// 2. Préparer le média (image)
|
||||
const media = await sock.prepareMessageMedia(
|
||||
{ image: imageBuffer },
|
||||
{ upload: sock.waUploadToServer }
|
||||
);
|
||||
|
||||
// 3. Créer le message interactif avec image dans le header
|
||||
const msg = generateWAMessageFromContent(jid, {
|
||||
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": ""
|
||||
}
|
||||
],
|
||||
})
|
||||
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({
|
||||
hasMediaAttachment: true,
|
||||
imageMessage: media.imageMessage,
|
||||
title: "Logo Merlo",
|
||||
subtitle: "Header avec image"
|
||||
}),
|
||||
nativeFlowMessage: proto.Message.InteractiveMessage.NativeFlowMessage.create({
|
||||
buttons: [
|
||||
{
|
||||
name: "cta_url",
|
||||
buttonParamsJson: JSON.stringify({
|
||||
display_text: "Google",
|
||||
url: "https://www.google.com",
|
||||
merchant_url: "https://www.google.com"
|
||||
})
|
||||
}
|
||||
]
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
}, {})
|
||||
|
||||
console.log(msg.message);
|
||||
}, {});
|
||||
|
||||
// 4. Envoyer le message
|
||||
await sock.relayMessage(jid, msg.message, { messageId: msg.key.id });
|
||||
|
||||
res.json({ success: true });
|
||||
@ -576,6 +564,7 @@ app.post('/testHeaderImage', async (req, res) => {
|
||||
|
||||
|
||||
|
||||
|
||||
// 5) 404 et gestion des erreurs
|
||||
app.use((req, res) => res.status(404).json({ error: 'Ressource introuvable' }));
|
||||
app.use((err, req, res, next) => {
|
||||
|
||||
@ -13,7 +13,9 @@
|
||||
"express": "^4.18.4",
|
||||
"qrcode": "^1.5.1",
|
||||
"sharp": "^0.33.0",
|
||||
"node-cache": "^5.1.2"
|
||||
"node-cache": "^5.1.2",
|
||||
"mime-types": "^2.1.35"
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user