Jump to content
Posted
  • Popular Post
comment_35854

Whatsapp Gateway | Multi Device


This script has been completely modified and many important features and fixes have been added by @Magd Almuntaser
He is now responsible for the updates of this script and has full intellectual property rights
So no one will violate the terms of use that he has set

Latest Features:
1. WhatsApp Account Connectivity

All types of WhatsApp Accounts to be able to connect with WhatsApp Gateway (Multi Number & Multi Device);
Ease of the WhatsApp Account connectivity process with a QRcode Scan or with an Authentication Code directly from your device.

2. Message

Availability of various types of (text messages, media, polls, lists, locations, VCard) can easily be used by you;
You can send mass messages for your marketing campaign activities, promotions or business programs easily and on a scheduled basis;
Setup automatic message replies with more natural (alami) and selected keywords for operational optimization of use;
Manage sent message history with automatic and scheduled deletions.

4. Integration

You can easily integrate your WhatsApp Account with various (AI) artificial intelligence services, namely ChatGPT, DALL-E, Gemini, and Cloude with API authentication codes only;
You can easily activate Ai for Single or Multiple use on your WhatsApp Account;
You can easily select Ai in your WhatsApp messages for WhatsApp Group, Private, or Both types;
You can easily setup call rejection automatically if there is a (Call) call and provide a specific response or information;
Setup your WhatsApp and Ai accounts more naturally (alami) with "Already read" status";
Setup your WhatsApp and Ai accounts more naturally (natural) with the status "Typing...".
You can easily integrate and communicate your services with the Webhook mechanism of WhatsApp Gateway | Multi Device.

5. Application Settings

Nowadays you can easily and quickly carry out the process of setting up the WhatsApp Gateway | Multi Device* application by Magd Almuntaser with the settings panel;
You can easily set up applications based on server ecosystem, smtp, etc quickly;
Multi language support (english, Indonesian, Indian, Spanish and Arabic) for easy use.

6. Developer Options

Currently WhatsApp Gateway | Multi Device* by Magd Almuntaser has provided various API services for your easy development consisting of:
        1). Send Message API
        2). Send Media API
        3). Send Poll API
        4). API Send Button
        5). Send API Templates
        6). Send List message API
        7). Send Location API
        8). Send VCard API
        9). Generate QR API
        10). Disconnect devices
        11). Create User API
        12). User Info API
        13). Device Info API
        14). Check Number API
        15). Webhook Example

Ease of setup and availability of the (API Key) API Key for authentication and authorization of your development process.

7. Security

Currently there is a 2 factor authentication (2FA) service available to maintain the security and comfort of application access;
A password reset service is available if you forget your account login information.


Coming Soon:

1. Landing page for Software as Service services (Subscription Services);
2. Payment gateway page management (QRIS, BCA virtual account, PayPal, Stripe);
3. Added user account management;
4. (ticket) obstacle reporting service for users and managers;
.. And many more.


 

  • Replies 4.1k
  • Views 248.6k
  • Created
  • Last Reply

Top Posters In This Topic

Most Popular Posts

  • Magd Almuntaser
    Magd Almuntaser

    What's new in version 9.0.0 so far: - Added landing page (welcome page). - Added plans system. - Added cronjob page. - Added Multi-Keyword in autoreply. - Added send message with footer. -

  • Magd Almuntaser
    Magd Almuntaser

    This version will not be released soon, because there are many people who violate rights without permission.. I told everyone to use the script for free, but if you want to sell the version or redev

  • Magd Almuntaser
    Magd Almuntaser

    Today the version will be released, and this is what's new in version 8.5.0: - Added send sticker feature. - Added wysiwyg whatsapp (text editing tools). - Added location, vcard, sticker in camp

Posted Images

Featured Replies

comment_77707
15 hours ago, Pebrian said:

thanks bro. i convert to appscript

Update Script

function sendQuranMessage() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var YOUR_WEBSITE = sheet.getRange('A2').getValue();
  var API = sheet.getRange('B2').getValue();
  var YOUR_NUMBER = sheet.getRange('C2').getValue();
  var AUDIO = sheet.getRange('E2').getValue();
  
  var dataRange = sheet.getRange(2, 4, sheet.getLastRow() - 1, 1);
  var ALL_NUMBERS = dataRange.getValues();

  var TAFSIR = "kemenag";
  var SHAIKH = "alafasy";

  ALL_NUMBERS.forEach(function(row, index) {
    var number = row[0];
    number = String(number).trim();
    
    var randomAyat = getAyatFromAPI();
    
    Logger.log(randomAyat);
  
    var arabic = randomAyat.arab;
    var indonesia = randomAyat.translation;
    
    var surahNumber = randomAyat.number && randomAyat.number.inSurah ? randomAyat.number.inSurah : 'Unknown Surah';
    var numberInSurah = randomAyat.number && randomAyat.number.inQuran ? randomAyat.number.inQuran : 'Unknown Ayat';
  
    var tafsirQuran = randomAyat.tafsir && randomAyat.tafsir[TAFSIR] && randomAyat.tafsir[TAFSIR].short 
      ? randomAyat.tafsir[TAFSIR].short 
      : 'Tafsir tidak tersedia';
  
    var audioUrl = randomAyat.audio[SHAIKH];
    
    var surahName = getSurahName(surahNumber);
  
    var MessageTemplate = `*Ayat Al Quran | Surat: ${surahName} | Qs: ${surahNumber}:${numberInSurah}*

    {{arabic}}

    {{indonesia}}

    *Tafsir (${TAFSIR}):*
    {{tafsir}}

    *Sedekah Jariyah*`;
    
    var Message = MessageTemplate.replace("{{arabic}}", arabic)
                                 .replace("{{indonesia}}", indonesia)
                                 .replace("{{tafsir}}", tafsirQuran);
    
    if (AUDIO == 2) {
      Logger.log("Mengirim Teks ke nomor: " + number);
      Logger.log("Pesan Teks: " + Message);
      sendTextMessage(YOUR_WEBSITE, API, YOUR_NUMBER, number, Message);
      
      Logger.log("Mengirim Audio ke nomor: " + number);
      Logger.log("URL Audio: " + audioUrl);
      sendAudioMessage(YOUR_WEBSITE, API, YOUR_NUMBER, number, audioUrl);
      
    } else if (AUDIO == 1) {
      Logger.log("Mengirim Audio ke nomor: " + number);
      Logger.log("URL Audio: " + audioUrl);
      sendAudioMessage(YOUR_WEBSITE, API, YOUR_NUMBER, number, audioUrl);
      
    } else {
      Logger.log("Mengirim Teks ke nomor: " + number);
      Logger.log("Pesan Teks: " + Message);
      sendTextMessage(YOUR_WEBSITE, API, YOUR_NUMBER, number, Message);
    }

    Utilities.sleep(2000);
  });
}

function getAyatFromAPI() {
  var url = "https://quran-api-id.vercel.app/random";
  var response = UrlFetchApp.fetch(url);
  var data = JSON.parse(response.getContentText());
  
  Logger.log(data);
  
  return data;
}

function sendTextMessage(YOUR_WEBSITE, API, sender, number, message) {
  var url = YOUR_WEBSITE + "/send-message";
  var payload = {
    'api_key': API,
    'number': number,
    'sender': sender,
    'message': message
  };
  
  var options = {
    'method': 'POST',
    'contentType': 'application/json',
    'payload': JSON.stringify(payload),
    'muteHttpExceptions': true
  };
  
  var response = UrlFetchApp.fetch(url, options);
  Logger.log("Response from server: " + response.getContentText());
}

function sendAudioMessage(YOUR_WEBSITE, API, sender, number, audioUrl) {
  var url = YOUR_WEBSITE + "/send-media";
  var payload = {
    'api_key': API,
    'number': number,
    'sender': sender,
    'media_type': 'audio',
    'caption': '',
    'url': audioUrl
  };
  
  var options = {
    'method': 'POST',
    'contentType': 'application/json',
    'payload': JSON.stringify(payload),
    'muteHttpExceptions': true
  };
  
  var response = UrlFetchApp.fetch(url, options);
  Logger.log("Response from server: " + response.getContentText());
}

function getSurahName(surahNumber) {
  var surahList = {
    1: 'Al-Fatiha',
    2: 'Al-Baqara',
    3: 'Aal-e-Imran',
    4: 'An-Nisa',
    5: 'Al-Maeda',
    6: 'Al-Anaam',
    7: 'Al-Araf',
    8: 'Al-Anfal',
    9: 'At-Taubah',
    10: 'Yunus',
    11: 'Hud',
    12: 'Yusuf',
    13: 'Ar-Rad',
    14: 'Ibrahim',
    15: 'Al-Hijr',
    16: 'An-Nahl',
    17: 'Al-Isra',
    18: 'Al-Kahf',
    19: 'Maryam',
    20: 'Taha',
    21: 'Al-Anbiya',
    22: 'Al-Hajj',
    23: 'Al-Mumenoon',
    24: 'An-Noor',
    25: 'Al-Furqan',
    26: 'Ash-Shuara',
    27: 'An-Naml',
    28: 'Al-Qasas',
    29: 'Al-Ankaboot',
    30: 'Ar-Room',
    31: 'Luqman',
    32: 'As-Sajda',
    33: 'Al-Ahzab',
    34: 'Saba',
    35: 'Fatir',
    36: 'Ya Seen',
    37: 'As-Saaffat',
    38: 'Sad',
    39: 'Az-Zumar',
    40: 'Ghafir',
    41: 'Fussilat',
    42: 'Ash-Shura',
    43: 'Az-Zukhruf',
    44: 'Ad-Dukhan',
    45: 'Al-Jathiya',
    46: 'Al-Ahqaf',
    47: 'Muhammad',
    48: 'Al-Fath',
    49: 'Al-Hujraat',
    50: 'Qaf',
    51: 'Adh-Dhariyat',
    52: 'At-Tur',
    53: 'An-Najm',
    54: 'Al-Qamar',
    55: 'Al-Rahman',
    56: 'Al-Waqia',
    57: 'Al-Hadid',
    58: 'Al-Mujadila',
    59: 'Al-Hashr',
    60: 'Al-Mumtahina',
    61: 'As-Saff',
    62: 'Al-Jumua',
    63: 'Al-Munafiqoon',
    64: 'At-Taghabun',
    65: 'At-Talaq',
    66: 'At-Tahrim',
    67: 'Al-Mulk',
    68: 'Al-Qalam',
    69: 'Al-Haaqqa',
    70: 'Al-Maarij',
    71: 'Nooh',
    72: 'Al-Jinn',
    73: 'Al-Muzzammil',
    74: 'Al-Muddathir',
    75: 'Al-Qiyama',
    76: 'Al-Insan',
    77: 'Al-Mursalat',
    78: 'An-Naba',
    79: 'An-Naziat',
    80: 'Abasa',
    81: 'At-Takwir',
    82: 'AL-Infitar',
    83: 'Al-Mutaffifin',
    84: 'Al-Inshiqaq',
    85: 'Al-Burooj',
    86: 'At-Tariq',
    87: 'Al-Ala',
    88: 'Al-Ghashiya',
    89: 'Al-Fajr',
    90: 'Al-Balad',
    91: 'Ash-Shams',
    92: 'Al-Lail',
     93: 'Ad-Dhuha',
     94: 'Al-Inshirah',
     95: 'At-Tin',
     96: 'Al-Alaq',
     97: 'Al-Qadr',
     98: 'Al-Bayyina',
     99: 'Al-Zalzala',
    100: 'Al-Adiyat',
    101: 'Al-Qaria',
    102: 'At-Takathur',
    103: 'Al-Asr',
    104: 'Al-Humaza',
    105: 'Al-fil',
    106: 'Quraish',
    107: 'Al-Maun',
    108: 'Al-Kauther',
    109: 'Al-Kafiroon',
    110: 'An-Nasr',
    111: 'Al-Masadd',
    112: 'Al-Ikhlas',
    113: 'Al-Falaq',
    114: 'An-Nas'
  };

  return surahList[surahNumber] || 'Unknown Surah';
}


Added Delay 2 Second before send next number
Added Title (Ayat Al Quran | Surahs $Title | Qs Title

image.png.8c3e1f2ad27c6a5dfcd285bcd0572366.png


mybe next time I migrate this all source to my storage, because full surahs in api not working

 

thanks my friend @Magd Almuntaser

Amazing Nice...😍👍👍👍

comment_77715

Hello can anyone help me..?
I have installed according to the instructions, but only a few moments after connecting then wa disconnected
Is there an error in my server.js script
Please share if anyone has a stable server.js
I am using Version v8.0.5 node: v20 (share hosting)

comment_77716
3 minutes ago, mdis said:

Hello can anyone help me..?
I have installed according to the instructions, but only a few moments after connecting then wa disconnected
Is there an error in my server.js script
Please share if anyone has a stable server.js
I am using Version v8.0.5 node: v20 (share hosting)

Does you add cron job?

 

every 1 min:
curl "https://yoursite/blast-start" >/dev/null 2>&1

every 1 min:
curl "https://yoursite/schedule-run" >/dev/null 2>&1

every 1 min:
curl "https://yoursite/schedule-cron" >/dev/null 2>&1

 

Edited by Unicode

comment_77718

@Unicode Yes, of course
I have run it step by step, but the connection is often lost
However, if I create a cronjob to send messages continuously via the API every minute, everything runs well. Is there an error in the server.js script? Please share it with me if anyone has a server.js modification.

Edited by mdis

comment_77719
2 minutes ago, mdis said:

@Unicode Yes, of course
I have run it step by step, but the connection is often lost
However, if I create a cronjob to send messages continuously via the API every minute, everything runs well. Is there an error in the server.js script? Please share it with me if anyone has a server.js modification.

I also got same issues.

always need to refresh connect with QR, refresh until my whatsapp profile picture shown again.

 

comment_77720
1 minute ago, Unicode said:

I also got same issues.

always need to refresh connect with QR, refresh until my whatsapp profile picture shown again.

 

If without cronjob send messages per minute via API the connection is often lost and I have to restart my node.js
Is this happening because I am using shared hosting or is there an error in the script,
If anyone has a stable script please share it with me
thank you

comment_77721
2 minutes ago, mdis said:

If without cronjob send messages per minute via API the connection is often lost and I have to restart my node.js
Is this happening because I am using shared hosting or is there an error in the script,
If anyone has a stable script please share it with me
thank you

I have try another whatsapp gateway and not found a wa gateway with rich feature.

Lets wait new update maybe will be nice

comment_77723
On 9/5/2024 at 8:56 PM, Enno The Explorer said:

Reset Password : Success 💚
**********************************************

File Manager : Success 💚
**********************************************

Export Phonebook : Success 💚
**********************************************

Campaign Snacked Admin (Theme) : Succes 💚
Campaign Eres & Eres Compact (Theme) : Success 💚
**********************************************

Text Message : Success 💚
Media Message : Success 💚
Poll Message : Success 💚
List Message : Success 💚
Location Message : Success 💚
Vcard Message : Success 💚
**********************************************

Automatically delete message history : Success 💚
**********************************************
Auto Replay Message (All Function): Success 💚
**********************************************
Api Test Message (All Function) : Success 💚
**********************************************
AI BOT One Bot (All Function): Success 💚
AI BOT Multi Bot (All Function): Success 💚
**********************************************
Webhook (All Function): Success 💚
**********************************************

Mpwa : v8.0.5
Node.js : v20
Php : v8.2
Server.js : Modifikasi
Cronjob : Tidak ada

Mulai : 

Tgl 05/09/24 Jam 10.02 
s.d
Tgl 05/09/24 Jam 10.42 
Durasi = +- 40 menit 
Tes : Pesan Api 1x 
Hasil : Success & Still Online 💚

Tgl 05/09/24 Jam 10.42 
sd 
Tgl 05/09/24 Jam 13.50 
Durasi = +- 2 Jam 
Tes : Pesan Api 1x 
Hasil : Success & Still Online 💚

Tgl 05/09/24 Jam 13.50 
sd 
Tgl 05/09/24 Jam 19.11
Durasi = +- 5 jam 
Tes : Pesan Api 1x 
Hasil : Success & Still Online 💚

Tgl 05/09/24 Jam 19.11 
sd 
Tgl 06/09/24 Jam 05.11
Durasi : Target +- 10 Jam ⚠️
Tes : Belum dilakukan ⚠️
Hasil : Belum diketahui ⚠️

I see this uses a modified Server.js, and it seems to be online for quite a while, can you share the server.js script?

@Unicode Have you ever tried this one?

comment_77724
5 minutes ago, mdis said:

If without cronjob send messages per minute via API the connection is often lost and I have to restart my node.js
Is this happening because I am using shared hosting or is there an error in the script,
If anyone has a stable script please share it with me
thank you

Some shared hosting will disconected the socket, why? because it is considered an anomaly on their log. So the solution is you must setup the cronjob on periodik time (1 hour/ 30 minutes) to restart the node js.

Next you must upgrade to the VPS for stable the sockets (spesially whiskey/baileys). I have been connected with MPWA version for 3 weeks with VM, not shared hossting.

Maybe this help you.

comment_77725
4 minutes ago, MURASAKI. said:

Some shared hosting will disconected the socket, why? because it is considered an anomaly on their log. So the solution is you must setup the cronjob on periodik time (1 hour/ 30 minutes) to restart the node js.

Next you must upgrade to the VPS for stable the sockets (spesially whiskey/baileys). I have been connected with MPWA version for 3 weeks with VM, not shared hossting.

Maybe this help you.

Can you tell me, how is cronjob command for restart node js on shared hosting?

 

comment_77732

@Magd Almuntaser

I found an anomaly in the "LIST MESSAGE" feature in the auto-reply section. I've already set the "Only reply when sender is" to "All", but it's not working on Android when accessed via group. However, it works fine when accessed personally. The problem is only in the Group.

Could you please explain this?

  • Author
comment_77734
7 minutes ago, Ilhamstore said:

@Magd Almuntaser

I found an anomaly in the "LIST MESSAGE" feature in the auto-reply section. I've already set the "Only reply when sender is" to "All", but it's not working on Android when accessed via group. However, it works fine when accessed personally. The problem is only in the Group.

Could you please explain this?

Yes, the problem has been fixed in the next version. The reason is that WhatsApp has modified its encryption method for some numbers. It has been modified in the next version.

comment_77742
53 minutes ago, mdis said:

Can anyone tell me, how to use cronjob command to restart node.js on shared hosting?

This is how I use "Cron Jobs" settings on shared hosting:

  • /usr/local/bin/php /path-your-porject/artisan schedule:run >/dev/null 2>&1
  • /usr/local/bin/php /path-your-porject/artisan start:blast >/dev/null 2>&1
  • /usr/local/bin/php /path-your-porject/artisan subscription:check >/dev/null 2>&1

Please replace (/path-your-porject/) with your actual directory path. As long as I've been using this on shared hosting, everything has been running smoothly so far.

comment_77743
10 minutes ago, Ilhamstore said:

This is how I use "Cron Jobs" settings on shared hosting:

  • /usr/local/bin/php /path-your-porject/artisan schedule:run >/dev/null 2>&1
  • /usr/local/bin/php /path-your-porject/artisan start:blast >/dev/null 2>&1
  • /usr/local/bin/php /path-your-porject/artisan subscription:check >/dev/null 2>&1

Please replace (/path-your-porject/) with your actual directory path. As long as I've been using this on shared hosting, everything has been running smoothly so far.

  • /usr/local/bin/php /path-your-porject/artisan subscription:check >/dev/null 2>&1 . khusus ini utk apa ya om?
comment_77744
29 minutes ago, Ilhamstore said:

Berikut cara saya menggunakan pengaturan "Cron Jobs" pada shared hosting:

  • /usr/local/bin/php /path-your-porject/artisan jadwal: jalankan >/dev/null 2>&1
  • /usr/local/bin/php /path-proyek-anda/artisan mulai: blast >/dev/null 2>&1
  • /usr/local/bin/php /path-your-porje ct/langganan artisan: periksa >/dev/null 2>&1

Harap ganti (/path-your-porject/) dengan jalur direktori Anda yang sebenarnya. Selama saya menggunakan ini di shared hosting, semuanya berjalan lancar sejauh ini.

This is run every few minutes or hours ..?

Edited by mdis

comment_77762

Can status columns be made dynamic? So if the number is connected, the status is connected and if it is disconnected, the status changes (disconnected). 

I added 3 numbers, the status was all connected. but when I click QRCode, the device asks to Scan QRCode again

help Mr. @Magd Almuntaser

Thank You

image.png.6530971fe0a2bbbeb4833891cb0a33eb.pngimage.thumb.png.4ff73d3c14037df57e3f4be66f25b76d.png

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.


Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

Recently Browsing 0

  • No registered users viewing this page.

Latest Updated Files