Hola a continuación les dejo material para la tercera parte de los tutoriales API whatsapp liberado en el mes de Mayo 2022 e integrarlo con Google Sheet les va permitir autoresponder a botones de solicitud de información
Video Implementación
Página Meta facebook
En la siguiente pagina pueden configurar sus plantillas y mensajes del API Whatsapp Business
Hola a continuación les dejo material para la segunda parte de los tutoriales API whatsapp liberado en el mes de Mayo 2022 e integrarlo con Google Sheet les va permitir el envio de botones , imagenes, documentos de forma masiva
Video Implementación
Página Meta facebook
En la siguiente pagina pueden configurar sus plantillas y mensajes del API Whatsapp Business
Método que envía mensajes de forma asíncrona a whatsapp
NOTA En whatsapp normal permite enviar mensajes, imágenes , documentos , botones en la versión whatsapp business solo envia mensajes
Codigo AppScript (indica en el video)
function onOpen()
{
createMenus();
}
function createMenus()
{
var menu = SpreadsheetApp.getUi().createMenu("Whatsapp")
menu.addItem('Enviar Mensajes Ahora', 'enviar');
menu.addToUi();
menu.addItem('Programar Envio Mensajes', 'programar');
menu.addToUi();
menu.addItem('Detener Envio Mensajes', 'detenerprogramar');
menu.addToUi();
}
function enviar(){
var response ="No"
try{
var response = Browser.msgBox('Seguro que quiere enviar msj ahora ?', Browser.Buttons.YES_NO);
} catch (e) {
Browser.msgBox('La acción no se ha realizado', Browser.Buttons.OK);
}
if ( response == "yes")
{
solonotificarwhatsapp();
console.log("Funcion fin programar : la fecha y hora: " + new Date());
Browser.msgBox('La acción ha sido realizada', Browser.Buttons.OK);
}
}
function detenerprogramar(){
console.log("Funcion inicio programar : la fecha y hora: " + new Date());
var response ="No"
try{
var response = Browser.msgBox('Se detuvo las tareas existentes', Browser.Buttons.YES_NO);
} catch (e) {
Browser.msgBox('La acción no se ha realizado', Browser.Buttons.OK);
}
if ( response == "yes")
{
//ELIMINAMOS LA PROGRAMACION
var triggers = ScriptApp.getProjectTriggers();
for(var i = 0; i < triggers.length; i++){
if(triggers[i].getTriggerSource() == ScriptApp.TriggerSource.CLOCK && triggers[i].getHandlerFunction()=="solonotificarwhatsapp"){
ScriptApp.deleteTrigger(triggers[i]);
};
};
Browser.msgBox('La acción ha sido realizada', Browser.Buttons.OK);
}
}
function programar(){
console.log("Funcion inicio programar : la fecha y hora: " + new Date());
var excel= SpreadsheetApp.getActiveSpreadsheet();
var sheet_configuracion =excel.getSheetByName("Configuracion");
var horas = sheet_configuracion.getRange(3, 2).getValue();
var response ="No"
try{
var response = Browser.msgBox('Se detuvo las tareas existentes, seguro que quiere programar tarea cada '+minutos+' minutos ?', Browser.Buttons.YES_NO);
} catch (e) {
Browser.msgBox('La acción no se ha realizado por formato fecha programacion', Browser.Buttons.OK);
}
if ( response == "yes")
{
//ELIMINAMOS LA PROGRAMACION ACTUAL
var triggers = ScriptApp.getProjectTriggers();
for(var i = 0; i < triggers.length; i++){
if(triggers[i].getTriggerSource() == ScriptApp.TriggerSource.CLOCK && triggers[i].getHandlerFunction()=="solonotificarwhatsapp"){
ScriptApp.deleteTrigger(triggers[i]);
};
};
//cada 5 hora se programa
ScriptApp.newTrigger("solonotificarwhatsapp").timeBased().everyHours(horas).create();
console.log("Funcion fin programar : la fecha y hora: " + new Date());
Browser.msgBox('La acción ha sido realizada', Browser.Buttons.OK);
}
}
var api="https://script.google.com/macros/s/AKfycbyoBhxuklU5D3LTguTcYAS85klwFINHxxd-FroauC4CmFVvS0ua/exec";
function solonotificarwhatsapp(){
var excel= SpreadsheetApp.getActiveSpreadsheet();
var sheet = excel.getSheetByName("Mensaje");
var rows = sheet.getRange(2,1,sheet.getLastRow()-1, sheet.getLastColumn()).getValues();
var dataArray = [];
var curDate = Utilities.formatDate(new Date(), "GMT-5", "dd/MM/yyyy HH:mm:ss");
for(var i = 0, l= rows.length; i<l ; i++){
var record = {};
var estado =rows[i][0];
if(estado==="Si"){
var numero =rows[i][2];
var mensaje =rows[i][3];
var imagen =rows[i][4];
var url =rows[i][5];
if(mensaje){
record['numero'] = numero;
record['mensaje'] = mensaje;
dataArray.push(record);
}else if(imagen){
record['numero'] = numero;
record['imagenbase64'] = imagen;
dataArray.push(record);
}else if(url){
record['numero'] = numero;
record['url'] = url;
dataArray.push(record);
}
sheet.getRange(i+2, 2).setValue(curDate);
}
}
if(dataArray.length>0){
var sheet_configuracion = excel.getSheetByName("Configuracion");
var codigoQR = sheet_configuracion.getRange(2, 1).getValue();
var payload =
{
"op":"registermessage",
"token_qr":codigoQR,
}
payload.mensajes =dataArray;
var options =
{
'headers': {"Content-Type" : "application/json"},
'method' : "POST",
'payload' : JSON.stringify(payload)
};
var response = UrlFetchApp.fetch(api, options);
var json = JSON.parse(response.getContentText());
}
}