wppconnect-team / wppconnect-server

Wppconnect Server is a ready-to-use API, just download, install, and start using, simple as that.
https://wppconnect.io/swagger/wppconnect-server/
Apache License 2.0
642 stars 376 forks source link

WAPI is not defined #1855

Closed sharmasaurabh7887 closed 3 months ago

sharmasaurabh7887 commented 4 months ago

Description

After Scan qr code from device got an error

error: 2024-05-15T13:47:20.564Z WAPI is not defined - Error: WAPI is not defined at /home/ubuntu/wppconnect-server/node_modules/@wppconnect-team/wppconnect/dist/api/helpers/evaluate-and-return.js:107:31 at step (/home/ubuntu/wppconnect-server/node_modules/@wppconnect-team/wppconnect/dist/api/helpers/evaluate-and-return.js:49:23) at Object.next (/home/ubuntu/wppconnect-server/node_modules/@wppconnect-team/wppconnect/dist/api/helpers/evaluate-and-return.js:30:53) at fulfilled (/home/ubuntu/wppconnect-server/node_modules/@wppconnect-team/wppconnect/dist/api/helpers/evaluate-and-return.js:21:58) at runNextTicks (node:internal/process/task_queues:60:5) at process.processImmediate (node:internal/timers:449:9) JS Stack: ReferenceError: WAPI is not defined at pptr:evaluate;%2Fhome%2Fubuntu%2Fwppconnect-server%2Fnode_modules%2F%40wppconnect-team%2Fwppconnect%2Fdist%2Fapi%2Fhelpers%2Fevaluate-and-return.js%3A99%3A56:56:47 at pptr:evaluate;%2Fhome%2Fubuntu%2Fwppconnect-server%2Fnode_modules%2F%40wppconnect-team%2Fwppconnect%2Fdist%2Fapi%2Fhelpers%2Fevaluate-and-return.js%3A99%3A56:56:77 at new Promise () at anonymous (pptr:evaluate;%2Fhome%2Fubuntu%2Fwppconnect-server%2Fnode_modules%2F%40wppconnect-team%2Fwppconnect%2Fdist%2Fapi%2Fhelpers%2Fevaluate-and-return.js%3A99%3A56:54:14) Function: function () { return WAPI.isConnected(); }

sidd82 commented 4 months ago

im facing same issue

gitdedc commented 3 months ago

Did you check the lib version and whatsapp version? If yes, delete session folder into userDataDir and restart API.

akk-akk commented 3 months ago

Hi, I'm also experiencing the same connectivity issues with WhatsApp on server deployment. But when connecting to a local host, it works perfectly as expected.

package.json

{
  "name": "@wppconnect/server",
  "version": "2.4.4",
  "description": "Projeto feito para autenticar a automomacao do WhatsappWeb com multi-clientes de forma dinamica. Backend feito em Nodejs(express, socketio), FrontEnd (ReactJS)",
  "main": "dist/index.js",
  "author": "kingaspx",
  "license": "Apache-2.0",
  "scripts": {
    "build:types": "tsc",
    "build:js": "rimraf dist && babel src --out-dir dist --extensions \".ts,.tsx\" --source-maps inline --copy-files",
    "build": "npm run build:types && npm run build:js",
    "changelog:last": "conventional-changelog -p angular -r 2",
    "changelog:preview": "conventional-changelog -p angular -u",
    "changelog:update": "conventional-changelog -p angular -i CHANGELOG.md -s",
    "commit": "git-cz",
    "dev": "tsx watch src/server.ts",
    "docs": "tsx src/swagger.ts",
    "license:add": "license-check-and-add add",
    "license:check": "license-check-and-add check",
    "lint": "eslint --ext .ts src",
    "prepare": "husky install",
    "release": "release-it",
    "start": "node ./dist/server.js",
    "swagger:copy-assets": "shx cp -R ./node_modules/swagger-ui-dist ./swagger-docs",
    "swagger:copy-json": "shx cp ./src/swagger.json ./swagger-docs",
    "swagger:fix-url": "sed -i \"s|https://petstore.swagger.io/v2/swagger.json|./swagger.json|g\" ./swagger-docs/index.html",
    "swagger:generate": "yarn swagger:copy-assets && yarn swagger:copy-json && yarn swagger:fix-url",
    "test": "jest"
  },
  "dependencies": {
    "@aws-sdk/client-s3": "^3.577.0",
    "@wppconnect-team/wppconnect": "^1.30.3",
    "archiver": "^7.0.1",
    "axios": "^1.6.8",
    "bcrypt": "^5.1.1",
    "buffer-to-stream": "1.0.0",
    "cors": "^2.8.5",
    "cross-env": "^7.0.3",
    "dotenv": "^16.4.5",
    "express": "^4.19.2",
    "express-query-boolean": "^2.0.0",
    "form-data": "^4.0.0",
    "json-mapper-json": "^1.3.3",
    "merge-deep": "^3.0.3",
    "moment": "^2.30.1",
    "multer": "^1.4.5-lts.1",
    "qrcode": "^1.5.3",
    "socket.io": "^4.7.5",
    "swagger-autogen": "^2.23.7",
    "swagger-ui-express": "^5.0.0",
    "unzipper": "^0.11.6",
    "winston": "^3.13.0"
  },
  "devDependencies": {
    "@babel/cli": "^7.24.5",
    "@babel/core": "^7.24.5",
    "@babel/eslint-parser": "^7.24.5",
    "@babel/eslint-plugin": "^7.24.5",
    "@babel/node": "^7.23.9",
    "@babel/plugin-transform-runtime": "^7.24.3",
    "@babel/preset-env": "^7.24.5",
    "@babel/preset-typescript": "^7.24.1",
    "@commitlint/cli": "^19.3.0",
    "@commitlint/config-conventional": "^19.2.2",
    "@commitlint/cz-commitlint": "^19.2.0",
    "@types/archiver": "^6.0.2",
    "@types/bcrypt": "^5.0.2",
    "@types/cors": "^2.8.17",
    "@types/express": "^4.17.21",
    "@types/jest": "^29.5.12",
    "@types/merge-deep": "^3.0.3",
    "@types/mime-types": "^2.1.4",
    "@types/multer": "^1.4.11",
    "@types/node": "^20.12.12",
    "@types/qrcode": "^1.5.5",
    "@types/swagger-ui-express": "^4.1.6",
    "@types/unzipper": "^0.10.9",
    "@typescript-eslint/eslint-plugin": "^7.8.0",
    "commitizen": "^4.3.0",
    "conventional-changelog-cli": "^4.1.0",
    "crypto-js": "^4.2.0",
    "eslint": "^8.57.0",
    "eslint-config-prettier": "^9.1.0",
    "eslint-config-standard-with-typescript": "^43.0.1",
    "eslint-plugin-import": "^2.29.1",
    "eslint-plugin-n": "^17.4.0",
    "eslint-plugin-prettier": "^4.2.1",
    "eslint-plugin-promise": "^6.1.1",
    "eslint-plugin-simple-import-sort": "^12.1.0",
    "husky": "^9.0.11",
    "jest": "^29.7.0",
    "license-check-and-add": "^4.0.5",
    "mongoose": "^8.3.4",
    "nodemon": "^3.1.0",
    "prettier": "^2.8.8",
    "pretty-quick": "^4.0.0",
    "prom-client": "^14.2.0",
    "redis": "^4.6.13",
    "release-it": "^17.2.1",
    "rimraf": "^5.0.7",
    "shx": "^0.3.4",
    "swagger-ui-dist": "^5.17.9",
    "ts-jest": "^29.1.2",
    "ts-loader": "^9.5.1",
    "tsx": "^4.7.3",
    "typescript": "^5.4.5",
    "webpack-cli": "^5.1.4"
  },
  "peerDependencies": {
    "crypto-js": "^4.2.0",
    "mongoose": "^8.3.4",
    "redis": "^4.6.13"
  }
}

config.ts

import { ServerOptions } from './types/ServerOptions';

// eslint-disable-next-line @typescript-eslint/no-var-requires
require('dotenv').config();

export default {
  secretKey: process.env.SECRET_KEY,
  host: process.env.HOST,
  port: process.env.PORT,
  deviceName: 'Project',
  poweredBy: 'Project-Service',
  startAllSession: true,
  tokenStoreType: 'file',
  maxListeners: 15,
  customUserDataDir: './userDataDir/',
  webhook: {
    url: null,
    autoDownload: true,
    uploadS3: false,
    readMessage: true,
    allUnreadOnStart: false,
    listenAcks: true,
    onPresenceChanged: true,
    onParticipantsChanged: true,
    onReactionMessage: true,
    onPollResponse: true,
    onRevokedMessage: true,
    onLabelUpdated: true,
    onSelfMessage: false,
    ignore: ['status@broadcast'],
  },
  websocket: {
    autoDownload: false,
    uploadS3: false,
  },
  chatwoot: {
    sendQrCode: true,
    sendStatus: true,
  },
  archive: {
    enable: false,
    waitTime: 10,
    daysToArchive: 45,
  },
  log: {
    level: 'silly', // Before open a issue, change level to silly and retry a action
    logger: ['console', 'file'],
  },
  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',
    ],
    /**
     * Example of configuring the linkPreview generator
     * If you set this to 'null', it will use global servers; however, you have the option to define your own server
     * Clone the repository https://github.com/wppconnect-team/wa-js-api-server and host it on your server with ssl
     *
     * Configure the attribute as follows:
     * linkPreviewApiServers: [ 'https://www.yourserver.com/wa-js-api-server' ]
     */
    linkPreviewApiServers: null,
  },
  mapper: {
    enable: false,
    prefix: 'tagone-',
  },
  db: {
    mongodbDatabase: 'tokens',
    mongodbCollection: '',
    mongodbUser: '',
    mongodbPassword: '',
    mongodbHost: '',
    mongoIsRemote: true,
    mongoURLRemote: '',
    mongodbPort: 27017,
    redisHost: 'localhost',
    redisPort: 6379,
    redisPassword: '',
    redisDb: 0,
    redisPrefix: 'docker',
  },
  aws_s3: {
    region: 'sa-east-1' as any,
    access_key_id: null,
    secret_key: null,
    defaultBucketName: null,
    endpoint: null,
    forcePathStyle: null,
  },
} as unknown as ServerOptions;
akk-akk commented 3 months ago

Did you check the lib version and whatsapp version? If yes, delete session folder into userDataDir and restart API.

Can you please confirm how to check these?

gitdedc commented 3 months ago

I found the problem.. investigating the solution

gitdedc commented 3 months ago

Using issue #1863