Whatsapp bot for flutter desktop

Whatsapp bot flutter

Whatsapp bot using whatsapp web scraping

Getting Started

We can use this library in Flutter as well as Pure dart projects , checkout dart example

First launch will take some time

it will download chromium files locally, using puppeteer for whatsapp web and scarping data

Macos setup

Enable outgoing and incoming connections for macos and also disable sandbox mode comment this out in macos/Runner/*.entitlements:

<key>com.apple.security.app-sandbox</key>
<true/>

Features

Supported Whatsapp features are :

  • Login with QR
  • Logout
  • Keep session
  • Send text message
  • Send image, audio & document
  • Listen to New Messages
  • Listen to Connection Events

Usage

First connect with whatsapp using WhatsappBotFlutter.connect method , we can get qrcode from onQrCode callback if we got onSuccess ,this means we are connected and ready to send messages

To convert qrCode String to QrCode widget for scanning use pretty_qr_code , check example for more details

WhatsappBotFlutter.connect(
  onQrCode: (String qr) {
    // there we will get QrCode string use any library to convert string to qrcode and scan
  },
  onError: (String er) {
    // listen for errors
  },
  onSuccess: () {
    // if we received this callback , it means we are connected to whatsapp
  },
  progress: (int prg) {
    // we can listen for progress update
  },
);

Use sendTextMessage to send a text message

WhatsappBotFlutter.sendTextMessage(
    countryCode: "91",
    phone: "------",
    message: "Test Message",
);

Use sendFileMessage to send a File

await WhatsappBotFlutter.sendFileMessage(
    countryCode: "91",
    phone: "------",
    fileBytes: imageBytes, // Pass file bytes
    caption: "Test Message", // Optional
    fileType: fileType, // document, image, audio
  ;

To get new Messages , subscribe to WhatsappBotFlutter.messageEvents

WhatsappBotFlutter.messageEvents.listen((Message message) {
  // Got whatsapp messages ...
});

To get whatsapp connection Events , subscribe to WhatsappBotFlutter.connectionEventStream

WhatsappBotFlutter.connectionEventStream.listen((event) {
  // Got Connection Events ...
});

Resources

Thanks to wa-js for exporting functions from WhatsApp Web

Disclaimer

This project is not affiliated, associated, authorized, endorsed by, or in any way officially connected with WhatsApp or any of its subsidiaries or its affiliates. The official WhatsApp website can be found at https://whatsapp.com. “WhatsApp” as well as related names, marks, emblems and images are registered trademarks of their respective owners.

Note

Its just initial version , under heavy development I can’t guarantee you will not be blocked by using this method, try to avoid primary whatsapp numbers. WhatsApp does not allow bots or unofficial clients on their platform, so this shouldn’t be considered totally safe.

GitHub

View Github