Hola a continuación les dejo material para la tercera parte de los tutoriales API whatsapp liberado en el mes de Mayo 2022 e integrarlo con Google Sheet les va permitir autoresponder a botones de solicitud de información
Video Implementación
VIDEO
Página Meta facebook
En la siguiente pagina pueden configurar sus plantillas y mensajes del API Whatsapp Business
https://developers.facebook.com/apps/?show_reminder=true
Y el token lo obtienen desde :
Plantillas
https://business.facebook.com/wa/manage/message-templates
Configuracion webhook
Paso 1 : Configurar el webhook con la URL AppScript
Paso 2 : Aceptar las notificaciones del tipo mensaje:
Página Excel Plantilla
https://docs.google.com/spreadsheets/d/13leXNvtIBGGcKlUKaITGFn980wXdnSeH58TSr3xSads/edit?usp=sharing
Código AppScript
function onOpen() {
createMenus();
}
function createMenus() {
var menu = SpreadsheetApp.getUi().createMenu("Whatsapp")
menu.addItem('Notificar Whatsapp', 'enviarwhatsapp');
menu.addToUi();
}
function enviarwhatsapp() {
var response = "No"
try {
var response = Browser.msgBox('Seguro que quiere enviar msj ahora ?', Browser.Buttons.YES_NO);
} catch (e) {
Browser.msgBox('La acción no se ha realizado', Browser.Buttons.OK);
}
if (response == "yes") {
enviar("Mensajes", "", "");
console.log("Funcion fin programar : la fecha y hora: " + new Date());
Browser.msgBox('La acción ha sido realizada', Browser.Buttons.OK);
}
}
function enviar(hoja, numero_enviar, mensaje_buscar) {
var excel = SpreadsheetApp.getActiveSpreadsheet();
var sheet_configuracion = excel.getSheetByName("Configuracion");
try {
var token = sheet_configuracion.getRange(1, 2).getValue();
var api = sheet_configuracion.getRange(2, 2).getValue();
if (excel.getSheetByName(hoja)) {
var sheet = excel.getSheetByName(hoja);
var rows = sheet.getRange(2, 1, sheet.getLastRow() - 1, sheet.getLastColumn()).getValues();
for (var i = 0, l = rows.length; i < l; i++) {
var numero = "";
if (numero_enviar != "") {
if (mensaje_buscar.toUpperCase() == rows[i][0].toUpperCase()) {
numero = numero_enviar;
} else {
continue;
}
} else {
numero = rows[i][0];
}
var plantilla = rows[i][4];
var payload = JSON.parse(JSON.stringify({
"messaging_product": "whatsapp",
"to": numero,
"type": "template",
"template": {
"name": plantilla,
"language": {
"code": "es"
},
"components": []
}
}));
var texto = [];
if (rows[i][1]) {
texto = rows[i][1].split(":::");
}
// SE AGREGA LOS PARAMETROS DE TEXTO
if (texto.length > 0) {
payload.template.components.push({ "type": "body", "parameters": [] });
for (var il = 0; il < texto.length; il++) {
payload.template.components[0].parameters.push({ "type": "text", "text": texto[il] });
}
}
// SE AGREGA IMAGEN AL HEADER
var imagen = rows[i][3];
if (imagen) {
payload.template.components.push({ "type": "header", "parameters": [{ "type": "image", "image": { "link": imagen } }] });
}
// SE AGREGA DOCUMENTO AL HEADER
var documento = rows[i][2];
if (documento) {
var nombre_archivo = (documento).substring((documento).lastIndexOf("/") + "/".length, (documento).length);
payload.template.components.push({ "type": "header", "parameters": [{ "type": "document", "document": { "link": documento, "filename": nombre_archivo } }] });
}
var options =
{
'headers': { "Content-Type": "application/json", "Authorization": token },
'method': "POST",
'payload': JSON.stringify(payload)
};
var response = UrlFetchApp.fetch(api, options);
var json = JSON.parse(response.getContentText());
Utilities.sleep(2000);
if (numero_enviar == "") {
if (json.error) {
sheet.getRange(2 + i, 6).setValue("ERROR");
} else {
sheet.getRange(2 + i, 6).setValue("EXITO");
}
} else {
break;
}
}
}
} catch (e) {
sheet_configuracion.getRange(10, 2).setValue(e);
}
}
function doPost(e) {
var operacion = JSON.parse(e.postData.contents);
var excel = SpreadsheetApp.getActiveSpreadsheet();
var sheet_solicitud = excel.getSheetByName("Solicitudes");
var numero = operacion.entry[0].changes[0].value.messages[0].from;
var mensaje = operacion.entry[0].changes[0].value.messages[0].button.text;
sheet_solicitud.appendRow([numero, mensaje, new Date(),JSON.stringify(operacion)]);
enviar("Conversacion", numero, mensaje);
var respuesta = {};
return ContentService.createTextOutput(JSON.stringify(operacion)).setMimeType(ContentService.MimeType.JSON);
}
function doGet(e) {
// var callback = e.parameter.callback;
var excel = SpreadsheetApp.getActiveSpreadsheet();
var sheet_configuracion = excel.getSheetByName("Configuracion");
var cadena = e.parameter["hub.challenge"];
sheet_configuracion.getRange(7, 2).setValue(cadena);
sheet_configuracion.getRange(8, 2).setValue(JSON.stringify(e));
var respuesta = { "status": "OK" };
return ContentService.createTextOutput(cadena).setMimeType(ContentService.MimeType.CSV);
}
ASESORIA PERSONALIZADA :
En caso necesites alguna asesoría personalizada agéndame un espacio.
https://reservarasesoriaanlusoft.blogspot.com/
buenas noches, en el minuto 6:42 de tu video dices que enviaras a un numero de tu Whatsapp, pero en la celda A2 de tu Google Sheets tienes otro numero, así que esa explicación la veo confusa, podrías aclarar!?
ResponderEliminar