En este tema, comprenderás mejor lo que la API de WhatsApp Web JS puede hacer en relación a contactos. Para facilitar la comprensión, hemos dividido el enfoque en algunos puntos esenciales:
Para WhatsApp Web, ¡todo contacto es simplemente un chat! Puede parecer extraño, pero así es como la plataforma maneja los contactos. WhatsApp utiliza el número de teléfono como identificador para el chat. Por lo tanto, al acceder a la información de los contactos, la API sigue la misma lógica.
¿Cuál es la diferencia entre getChats()
y getContacts()
?
getChats()
: solo devuelve los contactos con los que ya has tenido una conversación abierta.getContacts()
: devuelve todos los contactos que tienen cuenta en WhatsApp, incluyendo los contactos que participan en grupos de los que eres parte.La API de WhatsApp Web JS tiene las mismas limitaciones que WhatsApp Web, es decir, no es posible:
Esto sucede porque WhatsApp Web no tiene acceso a la agenda de tu celular. De esta forma, la API tampoco puede realizar estas acciones.
El método que devuelve los contactos puede parecer confuso, porque, al utilizarlo, puedes ver un número mayor de contactos que los que realmente están en tu agenda.
Esto ocurre porque el método getContacts()
también devuelve los números de los participantes de grupos de los que eres parte.
📌 Ejemplo práctico:
Si estás en un grupo con 50 personas, todas ellas serán listadas en la respuesta del método getContacts()
, aunque ellas no estén guardadas en tu agenda.
Esta característica puede ser útil para identificar nuevos contactos dentro de grupos o filtrar mensajes recibidos de desconocidos.
🚀 ¡Ahora que entiendes mejor cómo funciona la gestión de contactos en WhatsApp Web JS, explora los métodos disponibles en la API!
Esta API permite añadir un nuevo contacto a la lista de contactos de WhatsApp.
URL Base: https://apiwhatsappweb.com/api/add-contact
Todas las solicitudes deben realizarse a esta URL base.
Para autenticar las solicitudes, debes incluir la clave API (apiKey) y la identificación de la instancia ID en el encabezado (Header).
{
"apiKey": "Tu clave API aquí",
"id": "La identificación de la instancia aquí"
}
El cuerpo de la solicitud debe ser un objeto JSON con la siguiente estructura:
{
"firstName": "Contacto 1",
"lastName": "Apellido 1",
"phone": "554499999999"
}
const axios = require("axios"); let data = JSON.stringify({ "firstName": "Contacto 1", "lastName": "Apellido 1", "phone": "554499999999" }); let config = { method: 'post', url: 'https://apiwhatsappweb.com/api/add-contact', headers: { 'apiKey': 'Bearer Tu_ApiKey', 'id': 'Tu_ID_de_Instancia_Aquí', 'Content-Type': 'application/json' }, data: data }; axios.request(config) .then((response) => console.log(response.data)) .catch((error) => console.log(error));
{
"success": true,
"message": "¡Contacto añadido con éxito!",
"contact": {
"firstName": "Contacto 1",
"lastName": "Apellido 1",
"phone": "554499999999"
}
}
{
"error": "Número de teléfono inválido."
}
Esta API permite eliminar un contacto de la lista de contactos de WhatsApp.
URL Base: https://apiwhatsappweb.com/api/delete-contact
Para autenticar las solicitudes, debes incluir la clave API (apiKey) y la identificación de la instancia ID (identificación) en el encabezado (Header).
{
"apiKey": "Tu clave API aquí",
"id": "La identificación de la instancia aquí"
}
El cuerpo de la solicitud debe ser un objeto JSON con la siguiente estructura:
{
"id": "INSTANCE_ID",
"phone": "554499999999"
}
Ejemplos en Node.js, Python y C:
¡Atención!
Eliminar un contacto es una acción irreversible. Asegúrate de que deseas eliminar este contacto antes de continuar.
Esta API permite obtener la foto de perfil de un contacto en WhatsApp.
URL Base: https://apiwhatsappweb.com/api/get-contact-image
Todas las solicitudes deben realizarse a esta URL base.
Para autenticar las solicitudes, debes incluir la clave API (apiKey) y la identificación de la instancia ID (identificación) en el encabezado (Header).
{
"apiKey": "Tu clave API aquí",
"id": "La identificación de la instancia aquí"
}
El cuerpo de la solicitud debe ser un objeto JSON con la siguiente estructura:
{
"id": "INSTANCE_ID",
"phone": "554499999999"
}
const axios = require("axios"); let data = JSON.stringify({ "id": "INSTANCE_ID", "phone": "554499999999" }); let config = { method: 'post', url: 'https://apiwhatsappweb.com/api/get-contact-image', headers: { 'apiKey': 'Bearer Your_ApiKey', 'id': 'Your_Instance_ID_Here', 'Content-Type': 'application/json' }, data: data }; axios.request(config) .then((response) => console.log(response.data)) .catch((error) => console.log(error));
import requests url = 'https://apiwhatsappweb.com/api/get-contact-image' headers = { 'apiKey': 'Bearer Your_ApiKey', 'id': 'Your_Instance_ID_Here', 'Content-Type': 'application/json' } data = { "id": "INSTANCE_ID", "phone": "554499999999" } response = requests.post(url, headers=headers, json=data) print(response.json())
Esta API permite bloquear o desbloquear un contacto en WhatsApp.
URL Base: https://apiwhatsappweb.com/api/block-unblock
Todas las solicitudes deben realizarse a esta URL base.
Para autenticar las solicitudes, debes incluir la clave API (apiKey) y la identificación de la instancia ID (identificación) en el encabezado (Header).
{
apiKey: Tu clave API aquí
id: La identificación de la instancia aquí
}
El cuerpo de la solicitud debe ser un objeto JSON con la siguiente estructura:
{
"id": "INSTANCE_ID", // ID de la instancia conectada a WhatsApp
"phone": "554499999999", // Número del contacto a ser bloqueado/desbloqueado
"action": "block" // Acción: "block" para bloquear, "unblock" para desbloquear
}
const axios = require("axios"); let data = JSON.stringify({ "id": "INSTANCE_ID", "phone": "554499999999", "action": "block" }); let config = { method: 'post', url: 'https://apiwhatsappweb.com/api/block-unblock', headers: { 'apiKey': 'Bearer Your_ApiKey', 'id': 'Your_Instance_ID_Here', 'Content-Type': 'application/json' }, data: data }; axios.request(config) .then((response) => { console.log(response.data); }) .catch((error) => { console.log(error); });
import requests url = 'https://apiwhatsappweb.com/api/block-unblock' headers = { 'apiKey': 'Bearer Your_ApiKey', 'id': 'Your_Instance_ID_Here', 'Content-Type': 'application/json' } data = { "id": "INSTANCE_ID", "phone": "554499999999", "action": "block" } response = requests.post(url, headers=headers, json=data) print(response.json())
Esta API permite denunciar un contacto en WhatsApp.
URL: https://apiwhatsappweb.com/api/report-contact
Todas las solicitudes deben realizarse a esta URL base.
Para autenticar las solicitudes, incluye la Clave API (apiKey) y la Identificación de la Instancia (id) en el encabezado (Header).
{
"apiKey": "Tu clave API aquí",
"id": "La identificación de la instancia aquí"
}
El cuerpo de la solicitud debe ser un objeto JSON con la siguiente estructura:
{
"id": "INSTANCE_ID",
"phone": "554499999999",
"reason": "spam"
}
const axios = require("axios"); let data = JSON.stringify({ "id": "INSTANCE_ID", "phone": "554499999999", "reason": "spam" }); let config = { method: 'post', url: 'https://apiwhatsappweb.com/api/report-contact', headers: { 'apiKey': 'Bearer Your_ApiKey', 'id': 'Your_Instance_ID_Here', 'Content-Type': 'application/json' }, data: data }; axios.request(config) .then((response) => console.log(response.data)) .catch((error) => console.log(error));
Esta API permite recuperar todos los contactos asociados a una instancia de WhatsApp.
URL: https://apiwhatsappweb.com/api/contacts
Todas las solicitudes deben realizarse a esta URL base.
Para autenticar las solicitudes, incluye la Clave API (apiKey) y la Identificación de la Instancia (id) en el encabezado (Header).
{
"apiKey": "Tu clave API aquí",
"id": "La identificación de la instancia aquí"
}
El cuerpo de la solicitud debe ser un objeto JSON con la siguiente estructura:
{
"id": "INSTANCE_ID" // ID de la instancia conectada a WhatsApp
}
const axios = require("axios"); let data = JSON.stringify({ "id": "INSTANCE_ID" }); let config = { method: 'post', url: 'https://apiwhatsappweb.com/api/contacts', headers: { 'apiKey': 'Bearer Your_ApiKey', 'id': 'Your_Instance_ID_Here', 'Content-Type': 'application/json' }, data: data }; axios.request(config) .then(response => console.log(response.data)) .catch(error => console.error(error));