Mostrando entradas con la etiqueta google forms. Mostrar todas las entradas
Mostrando entradas con la etiqueta google forms. Mostrar todas las entradas

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/

🚀 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...