WPPConnect Team
WPPConnect Server
Wppconnect Server is a ready-to-use API, just download, install, and start using, simple as that.
- Javascript ES6
- NodeJS
- Restfull
Our online channels
Documentations
Access our documentation on postman
Access our documentation on Swagger
Or Swagger UI in your server. Acess router: "IP:PORT/api-docs"
Features
Multiple Sessions | |
Send text, image, video and docs | |
Get contacts list | ✔ |
Receive messages | ✔ |
Open/Close Session | |
Change Profile/Username | |
Create Group | ✔ |
Join Group by Invite Code | |
Webhook |
Libraries Used
- WPPConnect
- Axios
- Bcrypt
- Cors
- Dotenv
- Express
- Nodemon
- SocketIO
Installation
Install the dependencies and start the server.
yarn install
//or
npm install
Install puppeteer dependencies:
sudo apt-get install -y libxshmfence-dev libgbm-dev wget unzip fontconfig locales gconf-service libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils
Install google chrome
wget -c https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo apt-get update
sudo apt-get install libappindicator1
sudo dpkg -i google-chrome-stable_current_amd64.deb
Run Server
yarn dev
Build Server
yarn build
Configuration
This server use config.ts file to define some options, default values are:
{
/* secret key to genereta access token */
secretKey: 'THISISMYSECURETOKEN',
host: 'http://localhost',
port: '21465',
// Device name for show on whatsapp device
deviceName: 'WppConnect',
poweredBy: 'WPPConnect-Server',
// starts all sessions when starting the server.
startAllSession: true,
tokenStoreType: 'file',
// sets the maximum global listeners. 0 = infinity.
maxListeners: 15,
// create userDataDir for each puppeteer instance for working with Multi Device
customUserDataDir: './userDataDir/',
webhook: {
// set default webhook
url: null,
// automatically downloads files to upload to the webhook
autoDownload: true,
// enable upload to s3
uploadS3: false,
// set default bucket name on aws s3
awsBucketName: null,
//marks messages as read when the webhook returns ok
readMessage: true,
//sends all unread messages to the webhook when the server starts
allUnreadOnStart: false,
// send all events of message status (read, sended, etc)
listenAcks: true,
// send all events of contacts online or offline for webook and socket
onPresenceChanged: true,
// send all events of groups participants changed for webook and socket
onParticipantsChanged: true,
// send all events of reacted messages for webook and socket
onReactionMessage: true,
// send all events of poll messages for webook and socket
onPollResponse: true,
// send all events of revoked messages for webook and socket
onRevokedMessage: true,
// send all events of labels for webook and socket
onLabelUpdated: true,
},
// send data to chatwoot
chatwoot: {
sendQrCode: true,
sendStatus: true,
},
//functionality that archives conversations, runs when the server starts
archive: {
enable: false,
//maximum interval between filings.
waitTime: 10,
daysToArchive: 45,
},
log: {
level: 'silly', // Before open a issue, change level to silly and retry a action
logger: ['console', 'file'],
},
// create options for using on wppconnect-lib
createOptions: {
browserArgs: [
'--disable-web-security',
'--no-sandbox',
'--disable-web-security',
'--aggressive-cache-discard',
'--disable-cache',
'--disable-application-cache',
'--disable-offline-load-stale-cache',
'--disk-cache-size=0',
'--disable-background-networking',
'--disable-default-apps',
'--disable-extensions',
'--disable-sync',
'--disable-translate',
'--hide-scrollbars',
'--metrics-recording-only',
'--mute-audio',
'--no-first-run',
'--safebrowsing-disable-auto-update',
'--ignore-certificate-errors',
'--ignore-ssl-errors',
'--ignore-certificate-errors-spki-list',
'--disable-features=LeakyPeeker' // Disable the browser's sleep mode when idle, preventing the browser from going into sleep mode, this is useful for WhatsApp not to be in economy mode in the background, avoiding possible crashes
],
},
mapper: {
enable: false,
prefix: 'tagone-',
},
// Configurations for connect with database
db: {
mongodbDatabase: 'tokens',
mongodbCollection: '',
mongodbUser: '',
mongodbPassword: '',
mongodbHost: '',
mongoIsRemote: true,
mongoURLRemote: '',
mongodbPort: 27017,
redisHost: 'localhost',
redisPort: 6379,
redisPassword: '',
redisDb: 0,
redisPrefix: 'docker',
},
}
Secret Key
Your secretKey
is inside the config.ts
file. You must change the default value to one that only you know.
Generate Token
To generate an access token, you must use your SECRET_KEY
.
Using the route:
curl -X POST --location "http://localhost:21465/api/mySession/eUsouSeCreTo/generate-token"
Response:
{
"status": "Success",
"session": "mySession",
"token": "$2b$10$duQ5YYV6fojn5qFiFv.aEuY32_SnHgcmxdfxohnjG4EHJ5_Z6QWhe",
"full": "wppconnect:$2b$10$duQ5YYV6fojn5qFiFv.aEuY32_SnHgcmxdfxohnjG4EHJ5_Z6QWhe"
}
Using Token
Save the value of the "full" response. Then use this value to call the routes.
Examples
#Starting Session
# /api/:session/start-session
curl -X POST --location "http://localhost:21465/api/mySession/start-session" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer \$2b\$10\$JcHd97xHN6ErBuiLd7Yu4.r6McvOvEZZDQTQwev2MRK_zQObUZZ9C"
#Get QrCode
# /api/:session/start-session
# when the session is starting if the method is called again it will return the base64 qrCode
curl -X POST --location "http://localhost:21465/api/mySession/start-session" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer \$2b\$10\$JcHd97xHN6ErBuiLd7Yu4.r6McvOvEZZDQTQwev2MRK_zQObUZZ9C"
#Send Message
# /api/:session/send-message
curl -X POST --location "http://localhost:21465/api/mySession/send-message" \
-H "Content-Type: application/json; charset=utf-8" \
-H "Accept: application/json" \
-H "Authorization: Bearer \$2b\$10\$8aQFQxnWREtBEMZK_iHMe.u7NeoNkjL7s6NYai_83Pb31Ycss6Igm" \
-d "{
\"phone\": \"5511982743910\",
\"message\": \"*Abner* Rodrigues\"
}"
See the routes file
for all the routes. here and HTTP file.
Swagger UI
Swagger ui can be found at /api-docs