WhatsApp Gateway

Multi-Device · Database bedait_wa
0 device
Menghubungkan ke server...
Kirim Pesan
Cek Nomor
Daftar Grup
Klik "Muat Grup" untuk melihat grup
Kirim ke Grup
Daftar Percakapan
Daftar Percakapan
Memuat...
Pilih percakapan
Klik percakapan di samping untuk melihat pesan
Manajemen User
IDUsernameRoleDeviceDibuat
Edit User
Panduan Integrasi ke Website

Website dapat berkomunikasi dengan WA Gateway melalui API dan Webhook.

1. Konfigurasi Environment

PORT=3003
AUTH_USER=lotim
AUTH_PASS=5203
JWT_SECRET=wa-gateway-secret-key-2026
WEBHOOK_URL=http://website.com/api/webhook/whatsapp
WEBHOOK_SECRET=secret
DB_HOST=127.0.0.1
DB_USER=root
DB_PASS=
DB_NAME=bedait_wa

2. Endpoint API

MethodEndpointDeskripsi
POST/auth/loginLogin — dapatkan JWT token
GET/auth/meCek user saat ini
GET/healthCek status gateway
GET/devicesDaftar semua device
POST/devicesTambah device baru
DELETE/devices/:idHapus device
POST/devices/:id/restartRestart device
POST/devices/:id/logoutLogout dari WhatsApp
POST/send/messageKirim pesan WhatsApp
POST/send/groupKirim pesan ke grup
GET/groupsDaftar grup WhatsApp
GET/user/checkCek nomor terdaftar
GET/conversationsDaftar percakapan
GET/conversations/:phoneDetail percakapan
GET/logsLog aktivitas
GET/sessions/exportDownload backup sessions
GET/usersDaftar users
POST/usersTambah user baru
PUT/users/:idUpdate user
DELETE/users/:idHapus user

3. Autentikasi

// Login — dapatkan token
fetch('/auth/login', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({ username: 'lotim', password: '5203' })
})
// Response: { "token": "eyJ...", "user": { ... } }

// Gunakan token di setiap request
fetch('http://localhost:3003/send/message', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer eyJ...',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    device_id: 'default',
    phone: '6281234567890',
    message: 'Halo!'
  })
})

4. Kirim Pesan dari Website

fetch('http://localhost:3003/send/message', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer ' + token,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    device_id: 'default',
    phone: '6281234567890',
    message: 'Halo dari website!'
  })
})

5. Menerima Webhook (Pesan Masuk)

Setiap pesan masuk akan dikirim ke WEBHOOK_URL dengan format:

{
  "event": "message",
  "device_id": "default",
  "device_name": "Default",
  "payload": {
    "from": "6281234567890",
    "body": "Halo",
    "id": "message-id",
    "from_name": "Nama Pengirim",
    "chat_id": "6281234567890@c.us",
    "timestamp": 1234567890
  }
}

6. Verifikasi Signature

// Contoh verifikasi (PHP)
$secret = 'secret';
$payload = file_get_contents('php://input');
$signature = 'sha256=' . hash_hmac('sha256', $payload, $secret);
if ($signature === $_SERVER['HTTP_X_HUB_SIGNATURE_256']) {
  // signature valid
}

7. Kirim ke Grup

// Dapatkan daftar grup dulu
fetch('http://localhost:3003/groups?device_id=default', {
  headers: { 'Authorization': 'Bearer ' + token }
})
// Response: { groups: [{ id: "id@g.us", name: "Nama Grup" }] }

// Kirim ke grup
fetch('http://localhost:3003/send/group', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer ' + token,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    device_id: 'default',
    group_id: 'id@g.us',
    message: 'Halo grup!'
  })
})

8. Database bedait_wa

CREATE TABLE messages (
  id INT AUTO_INCREMENT PRIMARY KEY,
  device_id VARCHAR(50),
  direction ENUM('in','out'),
  phone VARCHAR(20),
  message TEXT,
  from_name VARCHAR(100),
  wa_message_id VARCHAR(100),
  status VARCHAR(20),
  created_at DATETIME
);

Log Aktivitas 0

Expand