whatsapp-bridge/server.js aktualisiert
This commit is contained in:
58
whatsapp-bridge/server.js
Normal file
58
whatsapp-bridge/server.js
Normal file
@@ -0,0 +1,58 @@
|
||||
const { Client, LocalAuth } = require('whatsapp-web.js');
|
||||
const express = require('express');
|
||||
const qrcode = require('qrcode');
|
||||
const app = express();
|
||||
|
||||
app.use(express.json());
|
||||
|
||||
let lastQr = "";
|
||||
let isReady = false;
|
||||
|
||||
// Wir speichern die Session im /data Ordner des Add-ons
|
||||
const client = new Client({
|
||||
authStrategy: new LocalAuth({ dataPath: '/data/auth' }),
|
||||
puppeteer: {
|
||||
executablePath: '/usr/bin/chromium-browser',
|
||||
args: ['--no-sandbox', '--disable-setuid-sandbox']
|
||||
}
|
||||
});
|
||||
|
||||
client.on('qr', (qr) => {
|
||||
lastQr = qr;
|
||||
console.log('Neuer QR Code generiert. Bitte in der Web UI scannen.');
|
||||
});
|
||||
|
||||
client.on('ready', () => {
|
||||
isReady = true;
|
||||
lastQr = "";
|
||||
console.log('WhatsApp ist bereit!');
|
||||
});
|
||||
|
||||
// Webseite für den QR-Code (Ingress)
|
||||
app.get('/', async (req, res) => {
|
||||
if (isReady) {
|
||||
res.send('<h1>WhatsApp ist verbunden! ✅</h1>');
|
||||
} else if (lastQr) {
|
||||
const qrImage = await qrcode.toDataURL(lastQr);
|
||||
res.send(`<h1>WhatsApp Login</h1><p>Scanne den Code mit deinem Handy:</p><img src="${qrImage}">`);
|
||||
} else {
|
||||
res.send('<h1>Warte auf QR-Code...</h1><p>Das kann beim ersten Start einen Moment dauern.</p>');
|
||||
}
|
||||
});
|
||||
|
||||
// API-Endpunkt zum Senden
|
||||
app.post('/send', async (req, res) => {
|
||||
const { number, message } = req.body;
|
||||
if (!isReady) return res.status(503).json({ error: 'Client nicht bereit' });
|
||||
|
||||
try {
|
||||
const chatId = number.includes('@c.us') ? number : `${number}@c.us`;
|
||||
await client.sendMessage(chatId, message);
|
||||
res.json({ success: true });
|
||||
} catch (err) {
|
||||
res.status(500).json({ error: err.message });
|
||||
}
|
||||
});
|
||||
|
||||
client.initialize();
|
||||
app.listen(3000, () => console.log('Add-on Server läuft auf Port 3000'));
|
||||
Reference in New Issue
Block a user