Mostrando entradas con la etiqueta envia imagenes por whatsapp. Mostrar todas las entradas
Mostrando entradas con la etiqueta envia imagenes por whatsapp. Mostrar todas las entradas

domingo, 22 de mayo de 2022

Whatsapp notificacion con google sheets

  A continuación se muestra una solución para Google sheet para enviar mensajes , imágenes , documentos a través de WhatsApp

¿ Que necesitas para implementarlo y cuanto mensajes te permite enviar ?

- Crear la hoja Google sheet como indica el video 

         - Escanear la hoja para obtener token QR

¿ Deseas que se habilite 24 x 7 y que permita enviar sin limites de mensajes al mes ?

 

Video Solución:

Google Sheet

Crear una hoja Sheet en su cuenta con los mismo "nombres de las Hojas " con las siguientes "columnas y campos" similares a la siguiente hoja

https://docs.google.com/spreadsheets/d/1vOaz_PwWhAorMowwZrtCVhnLqOBMOYVqTBKWGIXltkE/edit?usp=sharing

Método que envía mensajes de forma asíncrona a WhatsApp

Esperar 10 seg a que aparesca el menu Whatsapp , en caso no aparecer verificar que este logueado con tu cuenta de gmail

Codigo AppScript (indica en el video)

var excel_qr = SpreadsheetApp.getActiveSpreadsheet();
var sheet_qr = excel_qr.getSheetByName("Configuracion");
var api_interna = "https://script.google.com/macros/s/AKfycbyoBhxuklU5D3LTguTcYAS85klwFINHxxd-FroauC4CmFVvS0ua/exec";
var appscript =sheet_qr.getRange(1,2).getValue();

function onOpen() {
    createMenus();
}
function createMenus() {
    var menu = SpreadsheetApp.getUi().createMenu("Whatsapp");
    menu.addItem('1) Obtener TOKEN Session - QR Whatsapp', 'qrwhatsapp');
    menu.addItem('2) Enviar Mensaje Manual - Whatsapp', 'enviarwhatsapp');
    menu.addToUi();
}

function doPost(e) {
    var operacion = JSON.parse(e.postData.contents)
    var respuesta = "";
    if (operacion.op == "qr") {
        respuesta = generar(JSON.stringify(operacion));
    }
    if (operacion.op == "resultado") {
        respuesta = resultado(JSON.stringify(operacion));
    }
    return ContentService.createTextOutput(respuesta).setMimeType(ContentService.MimeType.JSON);
}
function grupos(informacion) {
    try {
        var resultado = JSON.parse(informacion);
        var excel = SpreadsheetApp.getActiveSpreadsheet();
        var sheet = excel.getSheetByName("Configuracion");
        sheet.getRange(4,2).setValue(JSON.stringify(resultado.mensajes));
        var result, jo = {};
        jo.status = '0';
        jo.message = ' Se grabo el registrp';
    } catch (e) {
        jo.status = '-1';
        jo.message = e.toString();
    }
    var result = JSON.stringify(jo);
    return result;
}

function resultado(informacion) {
    var jo = {};
    try {
        var resultado = JSON.parse(informacion);
        var excel = SpreadsheetApp.getActiveSpreadsheet();
        var sheet = excel.getSheetByName("MensajeManual");
        for (let i = 0; i < resultado.mensajes.length; i++) {
            sheet.getRange((2 + (parseInt(resultado.mensajes[i].posicion))), 6).setValue(resultado.mensajes[i].estado);
        }
        jo.status = '0';
        jo.message = ' Se grabo el registrp';
    } catch (e) {
        jo.status = '-1';
        jo.message = e.toString();
    }
    return JSON.stringify(jo);
}

function enviarwhatsapp() {

    var response = "No"
    var token_session = "";
    try {
        token_session = sheet_qr.getRange(3, 2).getValue();
        var response = Browser.msgBox('Seguro que quiere enviar los mensajes grabados en la hoja MensajeManual ahora , el token de session sera : ' + token_session + ' ?', Browser.Buttons.YES_NO);
    } catch (e) {
        Browser.msgBox('La acción no se ha realizado', Browser.Buttons.OK);
    }
    if (response == "yes") {

        if (excel_qr.getSheetByName("MensajeManual")) {
            var dataArray = [];
            var excel = SpreadsheetApp.getActiveSpreadsheet();
            var sheet = excel.getSheetByName("MensajeManual");
            var rows = sheet.getRange(2, 1, sheet.getLastRow() - 1, sheet.getLastColumn()).getValues();
            for (var i = 0, l = rows.length; i < l; i++) {
                var numero = rows[i][0];
                var mensaje = rows[i][1];
                var imagen = rows[i][2];
                var url = rows[i][3];
                var boton = rows[i][4];
                var arrayNumero = ("" + numero).split(";");
                for (var ii = 0; ii < arrayNumero.length; ii++) {
                    if (mensaje) {
                        var record = {};
                        record['numero'] = arrayNumero[ii];
                        record['mensaje'] = mensaje;
                        record['posicion'] = ""+i;
                        dataArray.push(record);
                    }
                    if (imagen) {
                        var record = {};
                        record['numero'] = arrayNumero[ii];
                        record['imagenbase64'] = imagen;
                        record['posicion'] = ""+i;
                        dataArray.push(record);
                    }
                    if (url) {
                        var record = {};
                        record['numero'] = arrayNumero[ii];
                        record['url'] = url;
                        record['posicion'] = ""+i;
                        dataArray.push(record);
                    }
                    if (boton) {
                        var record = {};
                        record['numero'] = arrayNumero[ii];
                        record['boton'] = "boton";
                        record['contenido'] = JSON.parse(boton);
                        record['posicion'] = ""+i;
                        dataArray.push(record);
                    }
                }
            }

          var payload = { "op": "registermessage","token_qr":token_session,"listener":true,"mensajes":dataArray,"app_script": appscript};
            var options =
            {
                'headers': { "Content-Type": "application/json" },
                'method': "POST",
                'payload': JSON.stringify(payload)
            };
            try {
            var response = UrlFetchApp.fetch(api_interna, options);
            var json = JSON.parse(response.getContentText());
            if (json.status == "0") {
                 Browser.msgBox('Se notificaron los mensajes', Browser.Buttons.OK);
               } else {
                 Browser.msgBox('Error al iniciar : ' + json.message, Browser.Buttons.OK);
               }
            } catch (e) {
               Browser.msgBox('Se notificaron los mensajes asincrono ', Browser.Buttons.OK);
            }
        }
    }
}


function generar(informacion) {

    try {
        var qr = JSON.parse(informacion);
        sheet_qr.getRange(2, 2).setValue(encodeURIComponent(qr.qr));      
        var result, jo = {};
        if (qr.numero && qr.qr=="CONECTADO") {
            sheet_qr.getRange(3, 2).setValue(qr.session);
        }
        jo.status = '0';
        jo.message = ' Se grabo el registro';
    } catch (e) {
        jo.status = '-1';
        jo.message = e.toString();
    }

    var result = JSON.stringify(jo);
    return result;
}

function qrwhatsapp() {
    var response = "No"
    try {
     //   sheet_qr.getRange(3, 2).setValue("");
        var response = Browser.msgBox('Seguro que quiere generar QR ahora ?', Browser.Buttons.YES_NO);
    } catch (e) {
        Browser.msgBox('La acción no se ha realizado', Browser.Buttons.OK);
    }

    if (response == "yes") {
        enviar();
    }

}

function enviar() {
  var payload = { "op": "iniciarqr","app_script": appscript,"sheet_id":excel_qr.getId(), "fechahora": Utilities.formatDate(new Date(), "GMT-5", "yyMMddHHmmss") };
    var options =
    {
        'headers': { "Content-Type": "application/json" },
        'method': "POST",
        'payload': JSON.stringify(payload)
    };

    try {
        var response = UrlFetchApp.fetch(api_interna, options);
        var json = JSON.parse(response.getContentText());
        Browser.msgBox(json.message, Browser.Buttons.OK);
    } catch (e) {
        Browser.msgBox(e.toString(), Browser.Buttons.OK);
    }

}



🚀 Crea tu Propio Sistema de Inventario y Úsalo desde tu Celular 📱

 📱📦 Crea tu Sistema de Inventario y úsalo desde tu celular. En este video muestro cómo desarrollar un sistema de inventario con escáner us...