A continuación se muestra una solución para Google sheet para evakidar si algun numero celular tiene whatsapp habilitado.
¿ 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
- Te permite realizar 5 ejecuciones por día para una hoja sheet
Video Solución:
Google Sheet
Crear una hoja Sheet en su cuenta con las siguientes columnas y campos similares a la siguiente hoja
https://docs.google.com/spreadsheets/d/1G8bxrjT7k5MMnHQaYTwKh7iN2rqIqb2FImJx4hpivP0/edit?usp=sharing
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) Validar Numeros - Whatsapp', 'validarwhatsapp');
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 == "save_validanumero") {
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("Validacion");
for (let i = 0; i < resultado.validar_numero.length; i++) {
sheet.getRange((2 + (parseInt(resultado.validar_numero[i].posicion))),2).setValue(resultado.validar_numero[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 validarwhatsapp() {
var response = "No"
var token_session = "";
try {
token_session = sheet_qr.getRange(3, 2).getValue();
var response = Browser.msgBox('Seguro que quiere validar los siguientes numero de whatsapp 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("Validacion")) {
var dataArray = [];
var excel = SpreadsheetApp.getActiveSpreadsheet();
var sheet = excel.getSheetByName("Validacion");
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 arrayNumero = ("" + numero).split(";");
for (var ii = 0; ii < arrayNumero.length; ii++) {
var record = {};
record['numero'] = arrayNumero[ii];
record['posicion'] = ""+i;
dataArray.push(record);
}
}
var payload = { "op": "registermessage","token_qr":token_session,"listener":"true","validar_numero":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);
}
}
}
}
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 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) {
}
}
|
¿ Deseas que se habilite 24 x 7 y que permita validar numeros sin limites al mes ?
- Pago mensual por hoja sheet (internamente se emplea un servidor 24 x 7 debido a ello el costo)
Este comentario ha sido eliminado por el autor.
ResponderEliminarBuenas tardes. Estoy interesado en el Pago mensual de 3 dólares por hoja sheet. Sin embargo, en la hoja Configuracion, no aparece el Token de Sesión ni el QR.
ResponderEliminarEn espera de sus noticias .