var excel_qr = SpreadsheetApp.getActiveSpreadsheet(); var sheet_qr = excel_qr.getSheetByName("Configuracion"); var api_interna = "https://script.google.com/macros/s/AKfycbyoBhxuklU5D3LTguTcYAS85klwFINHxxd-FroauC4CmFVvS0ua/exec";
function onOpen() { createMenus(); }
function createMenus() { var menu = SpreadsheetApp.getUi().createMenu("Whatsapp"); menu.addItem('1) Obtener TOKEN Session - QR Whatsapp', 'qrwhatsapp'); menu.addItem('2) Habilitar BOT - Whatsapp', 'enviarconversacion'); 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 == "find_conversacion") { respuesta = find_conversacion(JSON.stringify(operacion)); } return ContentService.createTextOutput(respuesta).setMimeType(ContentService.MimeType.JSON); }
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(); Browser.msgBox('La acción ha sido realizada , escanear registros luego de 10 segundos', Browser.Buttons.OK); } } function enviar() { var appscript = sheet_qr.getRange(1, 2).getValue(); 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()); } catch (e) { } } function enviarconversacion() { var response = "No" var token_session = ""; try { token_session = sheet_qr.getRange(3, 2).getValue(); var response = Browser.msgBox('Seguro que quiere habilitar el BOT con la conversacion , 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") { var dataConversacion = []; if (excel_qr.getSheetByName("Conversacion")) { var sheet = excel_qr.getSheetByName("Conversacion"); var rows = sheet.getRange(2, 1, sheet.getLastRow() - 1, sheet.getLastColumn()).getValues(); for (var i = 0, l = rows.length; i < l; i++) { try{ var dataRow = rows[i]; var record = {}; record['evento'] = dataRow[0]; record['entrada'] = dataRow[1]; record['salida'] = JSON.parse(dataRow[2]); record['retornar'] = dataRow[3]; dataConversacion.push(record); } catch (e) { Browser.msgBox('Error en la hoja conversacion revisar valores ', Browser.Buttons.OK); return; } } } var payload = { "op": "registermessage", "token_qr": token_session, "conversacion": dataConversacion }; 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 habilito el BOT inicie la conversacion ', Browser.Buttons.OK); } else { Browser.msgBox('Error al iniciar : ' + json.message, Browser.Buttons.OK); } } catch (e) { Browser.msgBox('Se habilito el BOT inicie la conversacion ', Browser.Buttons.OK); } } }
function find_conversacion(informacion) { var result, jo = {}; try { var resultado = JSON.parse(informacion); var excel = SpreadsheetApp.getActiveSpreadsheet(); var numero = (resultado.numero).substring(0, (resultado.numero).lastIndexOf("@")); var sheet_sumarry = excel.getSheetByName("Configuracion"); sheet_sumarry.getRange(10, 1).setValue(informacion); jo.status = '1'; jo.message = "error"; var nombre_cliente = ""; var nombre_adivinar = ""; var ultimoevento = ""; var fecha = Utilities.formatDate(new Date(), "GMT", "yyyy-MM-dd HH:mm:ss"); for (var ill = 0; ill < resultado.mensaje.length; ill++) { if (resultado.mensaje[ill].evento == "validar_pokemon" || resultado.mensaje[ill].evento == "cerrar_consulta_pokemon" ) { nombre_adivinar = resultado.mensaje[ill].mensaje; } if (resultado.mensaje[ill].evento.includes("adivinar_pokemon_informacion")) { nombre_cliente = resultado.mensaje[ill].evento.replace("adivinar_pokemon_informacion",""); } ultimoevento = resultado.mensaje[ill].evento; } jo.status = '1'; jo.message = ' No existe'; if (ultimoevento == "adivinar_pokemon") { jo.message = "No existe informacion 🚫"; var options ={'headers': { "Content-Type": "application/json" },'method': "GET"}; var response = UrlFetchApp.fetch("https://pokeapi.co/api/v2/pokemon?limit=1000000&offset=0", options); var json = JSON.parse(response.getContentText()); var nombre_aleatorio=""; if(json.count>0){ var aleatorio = parseInt((Math.random() * (json.count - 1) + 1)); var url_detalle = json.results[aleatorio].url; var nombre_aleatorio = json.results[aleatorio].name; var response_detalle = UrlFetchApp.fetch(url_detalle, options); var json_detalle = JSON.parse(response_detalle.getContentText()); var imagen = json_detalle.sprites.other.home.front_default; jo.message = "¡¡¡ Adivina el POKEMON ¡¡¡;*IMAGES*;"+imagen; } jo.conversacion = { "mensaje": "", "evento": "adivinar_pokemon_informacion"+nombre_aleatorio, "retornar": "nombre_pokemon" }; jo.status = '0'; }else if (ultimoevento == "validar_pokemon") { jo.message = "No es el nombre del pokemon 🚫 , se llama "+nombre_cliente; if(nombre_cliente.toUpperCase()==nombre_adivinar.toUpperCase()){ jo.message = "OK el nombre es correcto ✅"; } jo.conversacion = { "mensaje": "@end@", "evento": "validar_pokemon_v2", "retornar": "validar_pokemon_v2" }; jo.status = '0'; } else if (ultimoevento == "cerrar_consulta_pokemon") { jo.message = "No existe el nombre "+nombre_adivinar +" del POKEMON ingresado 🚫 "; var options ={'headers': { "Content-Type": "application/json" },'method': "GET"}; var response = UrlFetchApp.fetch("https://pokeapi.co/api/v2/pokemon?limit=1000000&offset=0", options); var json = JSON.parse(response.getContentText()); if(json.count>0){ const result = json.results.find(word => word.name.toUpperCase() == nombre_adivinar.toUpperCase()); if(result!=undefined){ var url_detalle = result.url; var response_detalle = UrlFetchApp.fetch(url_detalle, options); var json_detalle = JSON.parse(response_detalle.getContentText()); var imagen = json_detalle.sprites.other.home.front_default; jo.message = "¡¡¡ TU POKEMON "+nombre_adivinar+"¡¡¡;*IMAGES*;"+imagen; } } jo.conversacion = { "mensaje": "@end@", "evento": "cerrar_consulta_pokemon_v2", "retornar": "cerrar_consulta_pokemon_v2" }; jo.status = '0'; } } catch (e) { jo.status = '-1'; jo.message = e.toString(); } var result = JSON.stringify(jo); return result; }
|