• Stars
    star
    422
  • Rank 102,753 (Top 3 %)
  • Language
    Go
  • License
    MIT License
  • Created almost 3 years ago
  • Updated 5 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

API for Whatsapp Web Multi Device Version, Support UI & Webhook

Whatsapp API Multi Device Version

buddy pipeline release version
release windows release linux release macos

Feature

  • Send whatsapp 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"
  • For more command ./main --help

Required (without docker)

  • Mac OS:
    • brew install vips
    • brew install ffmpeg
    • export CGO_CFLAGS_ALLOW="-Xpreprocessor"
  • Linux:
    • sudo apt update
    • sudo apt install libvips-dev
    • 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-multi-device
  2. open via cmd/terminal
  3. run go install github.com/markbates/pkger/cmd/pkger@latest
  4. run cd src
  5. run pkger && go run main.go
  6. open http://localhost:3000
  7. run go run main.go --help for more detail flags

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

  1. Clone this repo git clone https://github.com/aldinokemal/go-whatsapp-web-multi-device
  2. open 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-multi-device
  2. open via cmd/terminal
  3. run go install github.com/markbates/pkger/cmd/pkger@latest
  4. run cd src
  5. run
    1. Linux & MacOS: pkger && go build -o whatsapp
    2. Windows (CMD, not PowerShell): pkger.exe && go build -o whatsapp.exe
  6. 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
  7. 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

You can check docs/openapi.yml for detail API, furthermore you can generate HTTP Client from this API using openapi-generator

Feature Menu Method URL
โœ… Login GET /app/login
โœ… Logout GET /app/logout
โœ… Reconnect GET /app/reconnect
โœ… User Info GET /user/info
โœ… User Avatar GET /user/avatar
โœ… User My Group List GET /user/my/groups
โœ… User My Privacy Setting GET /user/my/privacy
โœ… Send Message POST /send/message
โœ… Send Image POST /send/image
โœ… 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
โœ… Revoke Message POST /message/:message_id/revoke
โœ… React Message POST /message/:message_id/react
โœ… Join Group With Link POST /group/join-with-link
โœ… Leave Group POST /group/leave
โœ… = Available
โŒ = Not Available Yet

App User Interface

  1. Homepage Homepage
  2. Login Login
  3. Send Message Send Message
  4. Send Image Send Image
  5. Send File Send File
  6. Send Video Send Video
  7. Send Contact Send Contact
  8. Send Location Send Location
  9. Revoke Message Revoke Message
  10. Reaction Message Revoke Message
  11. User Info User Info
  12. User Avatar User Avatar
  13. My Privacy My Privacy
  14. My Group My Group
  15. Auto Reply Auto Reply
  16. Basic Auth Prompt Basic Auth

Mac OS NOTE

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