sábado, 27 de agosto de 2022

Google Forms con notificación a whatsapp

 Hola a continuación le dejo material para que puedan implementar sus notificaciones a whatsapp desde su formulario de Google Formas

¿ Que necesitas para implementarlo?

         - Escanear la pagina para obtener token QR

Video Implementación


Web escanear el código


https://anlusoftware.blogspot.com/


Código AppScript


var api="https://script.google.com/macros/s/AKfycbyoBhxuklU5D3LTguTcYAS85klwFINHxxd-FroauC4CmFVvS0ua/exec";  

var hojasheet="Respuestas de formulario 1"; 

function doPost(e) {

    var operacion = JSON.parse(e.postData.contents)

    var respuesta = "";

    if (operacion.op == "resultado") {

        respuesta = resultado(JSON.stringify(operacion));

    }

    return ContentService.createTextOutput(respuesta).setMimeType(ContentService.MimeType.JSON);

}

function resultado(informacion) {

    try {

        var resultado = JSON.parse(informacion);

        var excel = SpreadsheetApp.getActiveSpreadsheet();

        var sheet = excel.getSheetByName(hojasheet);

        for (let i = 0; i < resultado.mensajes.length; i++) {

            sheet.getRange(((parseInt(resultado.mensajes[i].posicion))), 9).setValue(resultado.mensajes[i].estado);

        }

        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 onOpen() {

    createMenus();

}

function createMenus() {

    var menu = SpreadsheetApp.getUi().createMenu("Whatsapp");

    menu.addItem('1) Inicializar Envios', 'createEditTrigger');

    menu.addItem('2) Detener Envios', 'eliminarEditTrigger');

    menu.addToUi();

}

function eliminarEditTrigger() {

  var allTriggers = ScriptApp.getProjectTriggers();

  for (var i = 0; i < allTriggers.length; i++)

  {

     ScriptApp.deleteTrigger(allTriggers[i]);

  }

  Browser.msgBox('Se ha eliminado el evento', Browser.Buttons.OK);

}


function createEditTrigger() {


  ScriptApp.newTrigger("solonotificarwhatsapp")

  .forSpreadsheet(SpreadsheetApp.getActive())

  .onFormSubmit()

  .create();

  Browser.msgBox('Se ha inicializado el evento', Browser.Buttons.OK);

}


function solonotificarwhatsapp(e){

  Logger.log("valor"+e.range.getValue());

  Logger.log("columna"+e.range.getColumn());

  Logger.log("fila"+e.range.getRow());

  if(e.range.getValue()!="" && e.range.getColumn()==1 && e.range.getRow()>1){

  Logger.log("ingreso a notificar");

  var fila=parseInt(e.range.getRow());

  var excel= SpreadsheetApp.getActiveSpreadsheet(); 

  var sheet = excel.getSheetByName(hojasheet);

  var token_qr = excel.getSheetByName("Configuracion").getRange(1, 2).getValue();

  var app_script =excel.getSheetByName("Configuracion").getRange(2, 2).getValue();  

  var mensaje="Hola *"+sheet.getRange(fila,2).getValue()+"* \nSe ha confirmado su registro de asistencia al evento ANLUSOFT \nLo esperemos ";

    try{

    var dataArray = [];

    var record = {}; 

            record['numero'] = sheet.getRange(fila,4).getValue();

            record['mensaje'] = mensaje;

            record['posicion'] = fila;

            dataArray.push(record); 

    var payload =

          {

            "op":"registermessage", 

            "token_qr":token_qr,

            "listener":"true",

            "app_script":app_script

          }

    payload.mensajes =dataArray;

    var options =

          {

            'headers': {"Content-Type" : "application/json"},

            'method' : "POST",

            'payload' : JSON.stringify(payload)

          };

      Logger.log(JSON.stringify(payload));    

      sheet.getRange(fila,9).setValue("Iniciando");

      var response = UrlFetchApp.fetch(api, options);

      var json = JSON.parse(response.getContentText());

      if(json.status=="0"){

      sheet.getRange(fila,9).setValue("Notificado");

      }else{

      sheet.getRange(fila,9).setValue(json.message);

      }    

    }catch (error) {

      sheet.getRange(fila,9).setValue(error+"");      

    }    

  }  

}


Actualmente la solución permite 4 envíos de 1 - 100 mensajes a la vez , con un token de session se habilita 4 envíos por día.

¿ Deseas que se habilite 24 x 7 y que permita enviar N envíos al mes con un solo token de session ?

- Pago mensual de 3 dólares por token de session  (internamente se emplea un servidor 24 x 7 debido a ello el costo)

         IR a PAGAR  

ASESORIA PERSONALIZADA :

En caso necesites alguna asesoría personalizada agéndame un espacio.

https://reservarasesoriaanlusoft.blogspot.com/

No hay comentarios:

Publicar un comentario

Chatbot Taxi en whatsapp con Chatgpt

  Hola a continuación le dejo material para que puedan implementar un BOT de solicitud de taxi a traves de BOT whatsapp empleando la Super I...