Conectando easyWassap a tu aplicación

Preparando mi Sistema para utilizar easyWassap

Para poder enviar mensajes a WhatsApp utilizando easyWassap, primeramente usted necesita vincular su numero al Api, luego puede proceder al envio de mensajes.

Una vez vinculado su telefono tiene los siguientes metodos del api para enviar mensajes:

  • sendMessage: permite el envio de mensajes unicamente de texto a un numero especifico, este metodo utiliza el metodo HTTPPOST y requiere de los parametros de phone: que es el numero de telefono al que se lenviara el mensaje, es obligatorio colocar el codigo de pais y el numero de telefono sin guiones. message: es el mensaje que se estara enviando, aqui puede enviar hasta 4000 caracteres por mensaje.

Que me va a retornar este metodo: si el mensaje se envio correctamente, se retornaraun objeto Json con el id del mensaje proporcionado por whatsapp y una copia del mismo y el receptor.

a continuacion le mostramos una forma de implementar el envio de mensajes desde varios lenguajes de programacion:

C#

				
					public class WhatsAppHelper
{
	private string Url = Settings.Default.WhatsAppApi;  // su endpoint 
	private const string AsSecuriteHeader = "as-securite";
	private string ApiKey = Settings.Default.WhatsAppKey; // Api Key
	/// <summary>
	/// Permite enviar un mensaje por el api de whatsapp
	/// </summary>
	/// <param name="phone"></param>
	/// <param name="message"></param>
	/// <returns></returns>
	public async Task<string > SendMessage(string phone, string message)
	{
		var result = await Task.Run(() =>
		{
			if (string.IsNullOrEmpty(Settings.Default.WhatsAppApi) || string.IsNullOrEmpty(Settings.Default.WhatsAppKey))
				return "No tiene configurado los valores necesrarios para poder enviar notificaciones";

			using (var client = new HttpClient())
			{
				// Agregar la cabecera as-securite
				client.DefaultRequestHeaders.Add(AsSecuriteHeader, ApiKey);
				// Crear el objeto con los parámetros
				var parameters = new
				{
					phone,
					message
				};
				// Convertir los parámetros a formato JSON
				var json = Newtonsoft.Json.JsonConvert.SerializeObject(parameters);
				// Crear el contenido de la solicitud
				var content = new StringContent(json, Encoding.UTF8, "application/json");
				// Realizar la solicitud POST
				var response =  client.PostAsync(Url+"sendMessage", content).Result;
				// Leer la respuesta
				var responseContent =  response.Content.ReadAsStringAsync().Result;
				return responseContent;
			}
		});
		return result;
	}
}
				
			

Una vez definida la clase que se va a comunicar con el API de easyWassap, requiere consumirla, para ello le mostramos un ejemplo de como hacerlo

				
					private async Task<string> EnviarMensaje()
{
	var result = await Task.Run(() => {
		var message = new WhatsAppHelper();
		var respuesta = message
		    .SendMessage("50433695514", "Hola, esto es una prueba").Result;
        return respuesta;
	}
	return result;
}
				
			

en .net es muy importante que utilice un metodo asincrono para poder conectarse al Api, de lo contrario tendra problemas con los resultados de la conexion.

Implentando utilizando Python

La implementacion en Python, puede requerir de librerias como requests, json, segun su implementacion, para esta demostracion utilizaremos ambas librerias mencionadas.

				
					import requests
import json

def enviarMensajes(telefono, archivo1):
    URL = "https://<su endpoint aqui>/sendMessage"
    params = {
        "phone": telefono,
        "message": archivo1[:3998] # se asegura que el mensaje no supere las 4000 letras
    }
    headers={"Content-Type": "application/json",
        "as-securite": "<<su api key aqui>>"}
    response = requests.post(URL, headers=headers, data=json.dumps(params))
    print(response.status_code)

    print("Proceso finalizado correctamente.")
				
			

Implementando con Java

				
					import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

public class ejemplo {
    public static void main(String[] args) {
        try {
            // URL del endpoint del API
            String apiUrl = "https://end-point/sendMessage";

            // Objeto con los parámetros del mensaje
            String jsonInputString = "{ \"phone\": \"50432179539\", \"message\": \"Esto es una prueba desde JAVA\" }";

            // Crear la URL
            URL url = new URL(apiUrl);

            // Abrir la conexión HTTP
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();

            // Configurar el método HTTP como POST
            connection.setRequestMethod("POST");

            // Configurar la cabecera con el apiKey
            connection.setRequestProperty("Content-Type", "application/json");
            connection.setRequestProperty("as-securite", "API KEY AQUI");

            // Permitir el envío de datos
            connection.setDoOutput(true);

            // Enviar el cuerpo del mensaje
            connection.getOutputStream().write(jsonInputString.getBytes("UTF-8"));

            // Obtener la respuesta del servidor
            int responseCode = connection.getResponseCode();

            // Leer la respuesta del servidor
            BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
            String inputLine;
            StringBuilder response = new StringBuilder();

            while ((inputLine = in.readLine()) != null) {
                response.append(inputLine);
            }

            in.close();

            // Imprimir la respuesta en la consola si la ejecución es exitosa (código 200)
            if (responseCode == HttpURLConnection.HTTP_OK) {
                System.out.println(response.toString());
            } else {
                System.out.println("Error al consumir el API. Código de respuesta: " + responseCode);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

				
			

Utilizando Excel para enviar mensajes

Ademas de lenguajes de programacion, podemos utilizar excel para automatizar el envio de mensajes.

En el siguiente ejemplo utilizaremos una hoja de excel para el envio de mensajes, en este ejemplo la columna A contiene los numeros de telefonos a los que se les enviara los mensajes, la columna H contiene un mensaje que con formulas de excel produce un mensaje completo basado en las columnas  B a la G y en la columna I se mostrara la respuesta del Api, para cada mensaje enviado se le colocara un codigo 200, los mensajes se envian al hacer clic en el boton enviar mensajes

				
					Sub enviar_datos_api()
    
    Dim objHTTP As Object
    Dim json_payload As String
    Dim telefono As String
    Dim nombre As String
    Dim saldo As String
    Dim fila As Long
    
    ' Crea un objeto WinHTTPRequest
    Set objHTTP = CreateObject("WinHttp.WinHttpRequest.5.1")
    
    ' Recorre todas las filas con datos
    fila = 2 ' Comenzamos en la fila 2, suponiendo que la fila 1 es la cabecera
    Do While Not IsEmpty(Range("A" & fila))
        
        ' Obtiene los datos de la fila
        telefono = Range("A" & fila).Value
        nombre = Range("H" & fila).Value
        saldo = Range("C" & fila).Value
        
        ' Crea un objeto JSON con los datos del cliente
        json_payload = "{""message"":""" & nombre & """, ""phone"":""" & telefono & """}"
        
        ' Configura la llamada a la API
        objHTTP.Open "POST", "https://suEndPointAqui/sendMessage", False
        objHTTP.setRequestHeader "Content-Type", "application/json"
        objHTTP.setRequestHeader "as-securite", "Su API AQUI"
        objHTTP.send json_payload
        
        ' Verifica si la llamada fue exitosa
        If objHTTP.Status = 200 Then
            Range("I" & fila).Value = objHTTP.Status ' Escribe "OK" en la columna D si la llamada fue exitosa
        Else
            Range("I" & fila).Value = "ERROR: Error al enviar el mensaje" ' Escribe "ERROR" en la columna D si la llamada falló
        End If
        
        fila = fila + 1 ' Avanza a la siguiente fila
        
    Loop
    
End Sub

				
			

Asigna la funcion al boton, como se ve en la imagen