0

I am trying to send the message from google sheet to whatsapp but after executing the script it gives me an error:

Code:

function sendWhatsAppMessages() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getRange("A2:B" + sheet.getLastRow());
  var data = range.getValues();
  Logger.log(data);
  
  for (var i = 0; i < data.length; i++) {
    var phoneNumber = data[i][0];
    var message = data[i][1];
    
    var encodedMessage = encodeURIComponent(message);
    var whatsappUrl = "https://wa.me/" + phoneNumber + "?text=" + encodedMessage;
    
    var options = {
      "method": "get",
      "muteHttpExceptions": true
    };
    
    var response = UrlFetchApp.fetch(whatsappUrl, options);
    Logger.log(response.getContentText());
  }
}

google app script

google sheet

Anosha Sheikh
  • 61
  • 1
  • 1
  • 4
  • 1
    Try URL Encoding with [EncodeURIComponent()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent) – Cooper Apr 04 '23 at 21:54

1 Answers1

1

When I saw the official document of "How to use click to chat", it says as follows.

Create your own link: Use https://wa.me/ where the is a full phone number in international format. Omit any zeroes, brackets, or dashes when adding the phone number in international format.

Examples:

Use: https://wa.me/1XXXXXXXXXX

Don't use: https://wa.me/+001-(XXX)XXXXXXX

When this is reflected in your script, how about the following modification?

From:

var phoneNumber = data[i][0];

To:

var phoneNumber = data[i][0].replace(/^\+?0{1,}|[ ()+-]/g, "");
  • By this modification, +001-(XXX)XXXXXXX is converted to 1XXXXXXXXXX.

Reference:

Tanaike
  • 181,128
  • 11
  • 97
  • 165