Sign inSign up

snipkode/wapis

By snipkode

•Updated about 1 year ago

WAPI Server Development

Image
Networking
API management
0

964

snipkode/wapis repository overview

ā šŸ“¦ WhatsApp API Server (Docker)

REST API & WebSocket server untuk WhatsApp berbasis whatsapp-web.js⁠.

⁠Fitur Utama
  • šŸ” Login via QR Code (HTML & WebSocket)
  • šŸ’¬ Kirim pesan teks dengan atau tanpa kutipan (quoted)
  • šŸ“„ Unduh media masuk (opsional pengembangan)
  • šŸ“Š Ambil daftar chat (grup/personal)
  • ⚔ Real-time QR & chat list via WebSocket
ā šŸ“¦ Cara Jalankan (Docker)
docker run -p 3000:3000 snipkode/wapis:latest

ā šŸ”— REST API

⁠QR Code
GET /api/qr?api_key=

šŸ–¼ļø Tampilkan QR Code untuk scan WhatsApp (HTML response)

⁠Status WhatsApp
GET /api/status?api_key=
{ "whatsappReady": true }
⁠Ambil Daftar Chat
GET /api/chats?type=group&api_key= # atau type=personal
[
  { "id": "[email protected]", "name": "Grup A", "unreadCount": 2 }
]
⁠Kirim Pesan (dengan opsi reply otomatis)
POST /api/send?api_key=
Content-Type: application/json
{
  "to": "628xxx", 
  "message": "Hai, ini dari bot",
  "quotedMessageId": "optional-msg-id"
}

Respon:

{
  "status": "sent",
  "target": "[email protected]",
  "usedQuoted": "ABCD1234",
  "id": "msgid12345"
}

ā šŸ”Œ WebSocket

⁠Koneksi
const socket = new WebSocket("ws://localhost:3000");
⁠Menerima QR Code Otomatis
socket.onmessage = (event) => {
  const data = JSON.parse(event.data);
  if (data.type === 'qr') {
    document.querySelector("img").src = data.data; // base64 QR
  }
};
⁠Minta Daftar Chat
socket.send(JSON.stringify({
  type: "getCurrentChats",
  chatType: "group" // atau "personal"
}));

Response:

{
  "type": "currentChats",
  "chatType": "group",
  "data": [
    { "id": "[email protected]", "name": "Nama Grup" }
  ]
}

ā šŸ“ Persistensi Login

Folder .wwebjs_auth otomatis dibuat di dalam container untuk menyimpan sesi login.


⁠DOCKER COMPOSE


version: '3.8'
services:
  wapis:
    image: snipkode/wapis:stable-v1.1
    container_name: wapis
    ports:
      - "3000:3000"
    volumes:
      - ../.wwebjs_auth:/app/.wwebjs_auth:rw
      - ../.wwebjs_cache:/app/.wwebjs_cache:rw
    environment:
      - API_KEY=YWxhbXdpYm93bw==
      - ALLOWED_ORIGINS=['localhost:8000']

Tag summary

Content type

Image

Digest

sha256:5c282a4ab…

Size

480.5 MB

Last updated

about 1 year ago

docker pull snipkode/wapis