Skip to content

WhatsApp Web API TypeScript/JavaScript. WhatsApp Web API ini ditenagai oleh library: Baileys.

License

Notifications You must be signed in to change notification settings

danitechnology/whatsapp-web-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WhatsApp Web API - TypeScript/JavaScript

WhatsApp Web API ini ditenagai oleh library: Baileys

Instalasi

Menggunakan Npm

npm i whatsapp-web-api

Atau Menggunakan Yarn

yarn add whatsapp-web-api

Contoh Kode

./package.json

{
  "name": "whatsapp-bot",
  "version": "0.0.0",
  "private": true,
  "main": "index.js",
  "scripts": {
    "start": "node index.js",
    "dev": "nodemon index.js"
  },
  "dependencies": {
    "whatsapp-web-api": "latest",
    "chalk": "^4.1.2"
  },
  "devDependencies": {
    "nodemon": "~3.0.1"
  }
}

./nodemon.json

{
  "ignore": ["index.js"],
  "ext": "js"
}

./index.js

const wwa = require('whatsapp-web-api');
const config = require('./config/settings.js');
const client = require('./includes/client.js');

const {
  makeWASocket
} = wwa;

const startServer = (config, client) => {
  return makeWASocket(config, client);
};

startServer(config, client);

./config/settings.js

module.exports = {
  pairing_mode: false,
  session_folder_name: 'session',
  browser: ["Chrome (Linux)"],
  public_mode: true,
  prefix: '.'
};

./includes/client.js

const chalk = require('chalk');
const config = require('../config/settings.js');

module.exports = async ({
  client,
  msg,
  store
}) => {
  try {
    const body = msg.mtype === 'conversation' ? msg.message.conversation : msg.mtype === 'extendedTextMessage' ? msg.message.extendedTextMessage.text : '';
    const budy = typeof msg.text === 'string' ? msg.text : '';
    const isCommand = body.startsWith(config.prefix) ? body.replace(config.prefix, '').trim().split(/ +/).shift().toLowerCase() : '';
    const command = isCommand.replace(config.prefix, '');
    const args = body.trim().split(/ +/).slice(1);
    const query = q = args.join(' ');
    const query1 = q1 = query.split('|')[0];
    const query2 = q2 = query.split('|')[1];
    const quoted = msg.quoted ? msg.quoted : msg;

    if (!config.public_mode) {
      if (!msg.key.fromMe) {
        return;
      };
    };

    if (msg.message) {
      client.readMessages([msg.key]);

      console.log(
        chalk.bgMagenta(' [New Message] '),
        chalk.cyanBright('Time: ') + chalk.greenBright(new Date()) + '\n',
        chalk.cyanBright('Message: ') + chalk.greenBright(budy || msg.mtype) + '\n' +
        chalk.cyanBright('From:'), chalk.greenBright(msg.pushName), chalk.yellow('- ' + msg.sender.split('@')[0]) + '\n' +
        chalk.cyanBright('Chat Type:'), chalk.greenBright(!msg.isGroup ? 'Private Chat - ' + chalk.yellow(client.user.id.split(':')[0]) : 'Group Chat - ' + chalk.yellow(msg.chat.split('@')[0]))
      );
    };

    if (!body.startsWith(config.prefix) || body === config.prefix) {
      return;
    };

    switch (command) {
      case 'test': {
        msg.reply('Ok, Success!');
        break;
      };
      
      case 'react': {
        const emoji = query ? query : '🗿';
        
        client.sendMessage(msg.chat, {
          react: {
            text: emoji,
            key: msg.key,
          },
        });
        break;
      };
      
      case 'text': {
        client.sendMessage(msg.chat, {
          text: 'Text'
        }, {
          quoted: quoted
        });
        break;
      };
      
      case 'document': {
        client.sendMessage(msg.chat, {
          document: {
            url: 'https://cdn.danitechno.com/daniapi/img/banner.jpeg'
          },
          fileName: 'example.jpeg',
          mimetype: 'image/jpeg'
        }, {
          quoted: quoted
        });
        break;
      };
      
      case 'image': {
        client.sendMessage(msg.chat, {
          image: {
            url: 'https://cdn.danitechno.com/daniapi/img/banner.jpeg'
          },
          caption: 'Image'
        }, {
          quoted: quoted
        });
        break;
      };
      
      case 'video': {
        client.sendMessage(msg.chat, {
          video: {
            url: 'https://dtubein.danitechno.com/uploads/videos/lv_7175020052696091906_20230628222944_64b4e41f00726.mp4'
          },
          caption: 'Video'
        }, {
          quoted: quoted
        });
        break;
      };
      
      case 'audio': {
        client.sendMessage(msg.chat, {
          audio: {
            url: 'https://cdn.danitechno.com/audio/dj-joanna-breakbeat.mp3'
          },
          mimetype: 'audio/mpeg',
          ptt: false
        }, {
          quoted: quoted
        });
        break;
      };
      
      case 'voice': {
        client.sendMessage(msg.chat, {
          audio: {
            url: 'https://cdn.danitechno.com/audio/dj-joanna-breakbeat.mp3'
          },
          mimetype: 'audio/mpeg',
          ptt: true
        }, {
          quoted: quoted
        });
        break;
      };
      
      default: {
        msg.reply(`Command: *${config.prefix}${command}*, tidak tersedia!`);
      };
    };
  } catch (error) {
    msg.reply('Terjadi kesalahan pada server.');
    console.error(error);
  };
};

Contoh kode/skrip bot WhatsApp lengkap

Klik disini untuk mengunduh proyek.

Informasi

  • Pembuat / Pengembang: Dani Technology (Dani Ramdani) - FullStack Engineer
  • Kontak Pembuat / Pengembang: 0895 3416 24750 (WhatsApp), contact@danitechno.com (Email)

Terimakasih Kepada

  • Dani Technnology (Dani Ramdani) - FullStack Engineer (Pembuat / Pengembang)
  • @whiskeysockets/baileys (Penyedia Library "Baileys")

About

WhatsApp Web API TypeScript/JavaScript. WhatsApp Web API ini ditenagai oleh library: Baileys.

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published