Skip to content

aldinokemal/go-whatsapp-web-multidevice

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WhatsApp API Multi Device Version

release version
Build Image
release windows release linux release macos

Support ARM Architecture

Now that we support ARM64 for Linux:

Feature

  • Send WhatsApp message via http API, docs/openapi.yml for more details

  • Compress image before send

  • Compress video before send

  • Change OS name become your app (it's the device name when connect via mobile)

    • --os=Chrome or --os=MyApplication
  • Basic Auth (able to add multi credentials)

    • --basic-auth=kemal:secret,toni:password,userName:secretPassword, or you can simplify
    • -b=kemal:secret,toni:password,userName:secretPassword
  • Customizable port and debug mode

    • --port 8000
    • --debug true
  • Auto reply message

    • --autoreply="Don't reply this message"
  • Webhook for received message

    • --webhook="http://yourwebhook.site/handler", or you can simplify
    • -w="http://yourwebhook.site/handler"
  • Webhook Secret

    Our webhook will be sent to you with an HMAC header and a sha256 default key secret.
    You may modify this by using the option below:

    • --webhook-secret="secret"
  • For more command ./main --help

Required (without docker)

  • Mac OS:
    • brew install ffmpeg
    • export CGO_CFLAGS_ALLOW="-Xpreprocessor"
  • Linux:
    • sudo apt update
    • sudo apt install ffmpeg
  • Windows (not recomended, prefer using WSL):

How to use

Basic

  1. Clone this repo: git clone https://github.com/aldinokemal/go-whatsapp-web-multidevice
  2. Open the folder that was cloned via cmd/terminal.
  3. run cd src
  4. run go run main.go
  5. Open http://localhost:3000

Docker (you don't need to install in required)

  1. Clone this repo: git clone https://github.com/aldinokemal/go-whatsapp-web-multidevice
  2. Open the folder that was cloned via cmd/terminal.
  3. run docker-compose up -d --build
  4. open http://localhost:3000

Build your own binary

  1. Clone this repo git clone https://github.com/aldinokemal/go-whatsapp-web-multidevice
  2. Open the folder that was cloned via cmd/terminal.
  3. run cd src
  4. run
    1. Linux & MacOS: go build -o whatsapp
    2. Windows (CMD / PowerShell): go build -o whatsapp.exe
  5. run
    1. Linux & MacOS: ./whatsapp
      1. run ./whatsapp --help for more detail flags
    2. Windows: .\whatsapp.exe or you can double-click it
      1. run .\whatsapp.exe --help for more detail flags
  6. open http://localhost:3000 in browser

Production Mode (docker)

docker run --detach --publish=3000:3000 --name=whatsapp --restart=always --volume=$(docker volume create --name=whatsapp):/app/storages aldinokemal2104/go-whatsapp-web-multidevice --autoreply="Dont't reply this message please"

Production Mode (binary)

You can fork or edit this source code !

Current API

Feature Menu Method URL
Login with Scan QR GET /app/login
Login With Pair Code GET /app/login-with-code
Logout GET /app/logout
Reconnect GET /app/reconnect
Devices GET /app/devices
User Info GET /user/info
User Avatar GET /user/avatar
User My Groups GET /user/my/groups
User My Newsletter GET /user/my/newsletters
User My Privacy Setting GET /user/my/privacy
Send Message POST /send/message
Send Image POST /send/image
Send Audio POST /send/audio
Send File POST /send/file
Send Video POST /send/video
Send Contact POST /send/contact
Send Link POST /send/link
Send Location POST /send/location
Send Poll / Vote POST /send/poll
Revoke Message POST /message/:message_id/revoke
React Message POST /message/:message_id/reaction
Delete Message POST /message/:message_id/delete
Edit Message POST /message/:message_id/update
Read Message (DM) POST /message/:message_id/read
Star message POST /message/:message_id/star
Join Group With Link POST /group/join-with-link
Leave Group POST /group/leave
Create Group POST /group
Add Participants in Group POST /group/participants
Remove Participant in Group POST /group/participants/remove
Promote Participant in Group POST /group/participants/promote
Demote Participant in Group POST /group/participants/demote
Unfollow Newsletter POST /newsletter/unfollow
✅ = Available
❌ = Not Available Yet

User Interface

Description Image
Homepage Homepage
Login Login
Login With Code Login With Code
Send Message Send Message
Send Image Send Image
Send File Send File
Send Video Send Video
Send Contact Send Contact
Send Location Send Location
Send Audio Send Audio
Send Poll Send Poll
Revoke Message Revoke Message
Delete Message Delete Message
Reaction Message Reaction Message
Edit Message Edit Message
User Info User Info
User Avatar User Avatar
My Privacy My Privacy
My Group My Group
Auto Reply Auto Reply
Basic Auth Prompt Basic Auth Prompt
Manage Participant Manage Participant
My Newsletter List Newsletter

Mac OS NOTE

  • Please do this if you have an error (invalid flag in pkg-config --cflags: -Xpreprocessor) export CGO_CFLAGS_ALLOW="-Xpreprocessor"