lunes, 14 de noviembre de 2022

Genera Diplomas y Certificados usando Google AppScript con Notificación por Whatsapp

   A continuación se muestra una solucion para generar certificados digitales en base a una plantilla y enviarlo por whatsapp

¿ Que necesitas para implementarlo  enviar de forma gratuita ?

- Cuenta gmail y seguir pasos del video

- 3 invocaciones al API, como maximo 100 mensajes.

   Video Solución:



Página para leer código QR:

https://anlusoftware.blogspot.com/

URL Google Sheet

https://docs.google.com/spreadsheets/d/142TEqUNpvKt9DaTnNIIdu8Ke-E4lZ0GPd9iyvjvg9SE/edit?usp=sharing

Codigo APP Script


var api_interna = "https://script.google.com/macros/s/AKfycbyoBhxuklU5D3LTguTcYAS85klwFINHxxd-FroauC4CmFVvS0ua/exec"; function onOpen() { createMenus(); } function createMenus() { var menu = SpreadsheetApp.getUi().createMenu("Notificar"); menu.addItem('1) Enviar Certificados', 'notificar'); menu.addToUi(); } function notificar(){ var response ="No" try{ var response = Browser.msgBox('Desea enviar los certificados ?', Browser.Buttons.YES_NO); } catch (e) { Browser.msgBox('La acción no se ha realizado', Browser.Buttons.OK); } if ( response == "yes") { solonotificarwhatsapp(); } } function solonotificarwhatsapp(){ var excel= SpreadsheetApp.getActiveSpreadsheet(); var sheet = excel.getSheetByName("Datos"); var sheet_configuracion = excel.getSheetByName("Configuracion"); var folderurl_completo = (sheet_configuracion.getRange(4, 2).getValue()).split("/"); var folderurl_id= ((folderurl_completo[folderurl_completo.length-1]).split("?"))[0]; var plantillaurl_completo = (sheet_configuracion.getRange(3, 2).getValue()).split("/"); var plantillaurl_id= plantillaurl_completo[plantillaurl_completo.length-2]; Logger.log("ID PLANTILLA "+plantillaurl_id); Logger.log("ID CARPETA "+folderurl_id); var carpeta = DriveApp.getFolderById(folderurl_id); var plantilla = DriveApp.getFileById(plantillaurl_id); var token = sheet_configuracion.getRange(1,2).getValue(); var mensaje = sheet_configuracion.getRange(2,2).getValue(); var url = sheet_configuracion.getRange(5,2).getValue(); var rows = sheet.getRange(2, 1, sheet.getLastRow() - 1, sheet.getLastColumn()).getValues(); var dataArray=[]; for (var i = 0; i < rows.length; i++) { var file_temp =plantilla.makeCopy(carpeta); var doc_temp = DocumentApp.openById(file_temp.getId()); var body_temp = doc_temp.getBody(); body_temp.replaceText("@nombre@", rows[i][1]).replaceText("@curso@", rows[i][2]); var docblob = doc_temp.getAs('application/pdf'); var nombre_archivo=new Date().getTime() + ".pdf"; docblob.setName(nombre_archivo); doc_temp.saveAndClose(); var file = carpeta.createFile(docblob); dataArray.push({"numero":rows[i][0],"mensaje":mensaje.replace("@nombre@",rows[i][1]).replace("@curso@",rows[i][2])}); dataArray.push({"numero":rows[i][0],"url":url+""+nombre_archivo}); file_temp.setTrashed(true); } // SE NOTIFICA POR WHATSAPP var payload = { "op": "sendmessage","token_qr":token,"mensajes":dataArray}; 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); } }





NOTA : La api whatsapp que se emplea es una API NO OFICIAL que permite 3 envios por dia, si  Deseas enviar ilimitadamente mensajes durante 1 mes

- Pago mensual  por numero de celular a notificar (internamente se emplea un servidor 24 x 7 debido a ello el costo 

IR a PAGAR

  

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