Antes de instalar el envoltorio, asegúrate de tener instalado CMake
en tu sistema. Puedes descargarlo desde aquí.
Puedes instalarlo utilizando CMake con FetchContent
. Agrega lo siguiente a tu archivo CMakeLists.txt
:
include(FetchContent)
FetchContent_Declare(
ZeroBounce
GIT_REPOSITORY https://github.com/zerobounce/zerobounce-cpp-api-wrapper.git
GIT_TAG <DESIRED_TAG>
)
FetchContent_MakeAvailable(ZeroBounce)
Esto generará el objetivo ZeroBounce
al que puedes enlazar de la manera habitual:
target_link_libraries(nombre_de_tu_objetivo PRIVATE ZeroBounce)
Si utilizas Visual Studio Code, puedes construir la biblioteca utilizando las extensiones CMake
y CMake Tools
. Después de instalar las extensiones, simplemente abre los comandos con CTRL + SHIFT + P
y utiliza CMake: Configure
, seguido de CMake: Build
.
Alternativamente, también puedes utilizar los comandos de la línea de comandos en el directorio raíz de tu proyecto.
mkdir build
cmake -S . -B build -G "Unix Makefiles"
cmake --build build
Asegúrate de tener instalado MinGW
en tu sistema. Puede ser instalado siguiendo los pasos aquí.
mkdir build
cmake -S . -B build -G "MinGW Makefiles"
cmake --build build
Ten en cuenta que es posible que la biblioteca requiera algunos archivos .dll (que se encuentran en el directorio build
) para funcionar correctamente en tu proyecto.
Incluye la biblioteca en tu archivo:
###include <ZeroBounce/ZeroBounce.h>
Inicializa el envoltorio con tu clave de API:
ZeroBounce::getInstance()->initialize("<TU_CLAVE_DE_API>");
Luego puedes utilizar cualquiera de los métodos del envoltorio, por ejemplo:
- ####### Comprobar cuántos créditos te quedan en tu cuenta
ZeroBounce::getInstance()->getCredits(
[](ZBCreditsResponse response) {
cout << response.toString() << endl;
},
[](ZBErrorResponse errorResponse) {
cout << errorResponse.toString() << endl;
}
);
- ####### Comprobar el uso de tu API durante un período de tiempo determinado
std::tm startDate = {0};
startDate.tm_year = 118;
startDate.tm_mon = 0;
startDate.tm_mday = 1;
std::tm endDate = {0};
endDate.tm_year = 123;
endDate.tm_mon = 11;
endDate.tm_mday = 12;
ZeroBounce::getInstance()->getApiUsage(
startDate,
endDate,
[](ZBGetApiUsageResponse response) {
cout << response.toString() << endl;
},
[](ZBErrorResponse errorResponse) {
cout << errorResponse.toString() << endl;
}
);
- ####### Validar una dirección de correo electrónico
std::string email = "valido@ejemplo.com"; // La dirección de correo electrónico que deseas validar
std::string ipAddress = "127.0.0.1"; // La dirección IP desde la que se registró el correo electrónico (opcional)
ZeroBounce::getInstance()->validate(
email,
ipAddress,
[](ZBValidateResponse response) {
cout << response.toString() << endl;
},
[](ZBErrorResponse errorResponse) {
cout << errorResponse.toString() << endl;
}
);
- ####### Validar un lote de correos electrónicos
std::vector<ZBEmailToValidate> emails = {
{"valido@ejemplo.com", "1.1.1.1"},
{"invalido@ejemplo.com"}
};
ZeroBounce::getInstance()->validateBatch(
emails,
[](ZBValidateBatchResponse response) {
cout << response.toString() << endl;
},
[](ZBErrorResponse errorResponse) {
cout << errorResponse.toString() << endl;
}
);
- ####### Utilizar el punto final de la API de actividad para obtener información sobre la participación general de los suscriptores en los correos electrónicos
std::string email = "valido@ejemplo.com"; // Dirección de correo electrónico del suscriptor
ZeroBounce::getInstance()->getActivityData(
email,
[](ZBActivityDataResponse response) {
cout << response.toString() << endl;
},
[](ZBErrorResponse errorResponse) {
cout << errorResponse.toString() << endl;
}
);
- ####### La API sendfile permite al usuario enviar un archivo para la validación masiva de correos electrónicos
std::string filePath = "<RUTA_DEL_ARCHIVO>"; // Ruta del archivo csv o txt
int emailAddressColumn = 3; // El índice de la columna "email" en el archivo. El índice comienza en 1
SendFileOptions options; // Opciones adicionales
options.returnUrl = "https://dominio.com/llamado/después/de/procesar/solicitud";
options.firstNameColumn = 4; // El índice de la columna "nombre" en el archivo
options.lastNameColumn = 5; // El índice de la columna "apellido" en el archivo
options.genderColumn = 6; // El índice de la columna "género" en el archivo
options.ipAddressColumn = 7; // El índice de la columna "dirección IP" en el archivo
options.hasHeaderRow = true; // Si esto es `true`, la primera fila se considera como encabezados de tabla
options.removeDuplicate = true; // Si esto es `true`, se eliminarán los correos electrónicos duplicados
ZeroBounce::getInstance()->sendFile(
filePath,
emailAddressColumn,
options,
[](ZBSendFileResponse response) {
cout << response.toString() << endl;
},
[](ZBErrorResponse errorResponse) {
cout << errorResponse.toString() << endl;
}
);
- ####### La API getfile permite a los usuarios obtener el archivo de resultados de validación para el archivo enviado utilizando la API sendfile
std::string fileId = "<ID_DE
_ARCHIVO>"; // El ID de archivo devuelto al llamar a la API sendfile
std::string localDownloadPath = "<RUTA_DE_DESCARGA_DEL_ARCHIVO>"; // La ubicación donde se guardará el archivo descargado
ZeroBounce::getInstance()->getFile(
fileId,
localDownloadPath,
[](ZBGetFileResponse response) {
cout << response.toString() << endl;
},
[](ZBErrorResponse errorResponse) {
cout << errorResponse.toString() << endl;
}
);
- ####### Comprobar el estado de un archivo cargado a través del método "sendFile"
std::string fileId = "<ID_DE_ARCHIVO>"; // El ID de archivo devuelto al llamar a la API sendfile
ZeroBounce::getInstance()->fileStatus(
fileId,
[](ZBFileStatusResponse response) {
cout << response.toString() << endl;
},
[](ZBErrorResponse errorResponse) {
cout << errorResponse.toString() << endl;
}
);
- ####### Eliminar el archivo que se envió utilizando la API sendfile. El archivo solo se puede eliminar si su estado es
Completo
std::string fileId = "<ID_DE_ARCHIVO>"; // El ID de archivo devuelto al llamar a la API sendfile
ZeroBounce::getInstance()->deleteFile(
fileId,
[](ZBDeleteFileResponse response) {
cout << response.toString() << endl;
},
[](ZBErrorResponse errorResponse) {
cout << errorResponse.toString() << endl;
}
);
- ####### La API scoringSendfile permite al usuario enviar un archivo para la validación masiva de correos electrónicos
std::string filePath = "<RUTA_DEL_ARCHIVO>"; // Ruta del archivo csv o txt
int emailAddressColumn = 3; // El índice de la columna "email" en el archivo. El índice comienza en 1
SendFileOptions options; // Opciones adicionales
options.returnUrl = "https://dominio.com/llamado/después/de/procesar/solicitud";
options.hasHeaderRow = true; // Si esto es `true`, la primera fila se considera como encabezados de tabla
ZeroBounce::getInstance()->scoringSendFile(
filePath,
emailAddressColumn,
options,
[](ZBSendFileResponse response) {
cout << response.toString() << endl;
scoringFileId = response.fileId;
},
[](ZBErrorResponse errorResponse) {
cout << errorResponse.toString() << endl;
}
);
- ####### La API scoringGetFile permite a los usuarios obtener el archivo de resultados de validación para el archivo enviado utilizando la API scoringSendfile
std::string fileId = "<ID_DE_ARCHIVO>"; // El ID de archivo devuelto al llamar a la API scoringSendfile
std::string localDownloadPath = "<RUTA_DE_DESCARGA_DEL_ARCHIVO>"; // La ubicación donde se guardará el archivo descargado
ZeroBounce::getInstance()->scoringGetFile(
fileId,
localDownloadPath,
[](ZBGetFileResponse response) {
cout << response.toString() << endl;
},
[](ZBErrorResponse errorResponse) {
cout << errorResponse.toString() << endl;
}
);
- ####### Comprobar el estado de un archivo cargado a través del método "scoringSendFile"
std::
string fileId = "<ID_DE_ARCHIVO>"; // El ID de archivo devuelto al llamar a la API scoringSendfile
ZeroBounce::getInstance()->scoringFileStatus(
fileId,
[](ZBFileStatusResponse response) {
cout << response.toString() << endl;
},
[](ZBErrorResponse errorResponse) {
cout << errorResponse.toString() << endl;
}
);
- ####### Eliminar el archivo que se envió utilizando la API scoring scoringSendfile. El archivo solo se puede eliminar si su estado es
Completo
std::string fileId = "<ID_DE_ARCHIVO>"; // El ID de archivo devuelto al llamar a la API scoringSendfile
ZeroBounce::getInstance()->scoringDeleteFile(
scoringFileId,
[](ZBDeleteFileResponse response) {
cout << response.toString() << endl;
},
[](ZBErrorResponse errorResponse) {
cout << errorResponse.toString() << endl;
}
);
- ####### Email finder allows you to identify the correct email format when you provide a name and email domain
ZeroBounce::getInstance()->findEmail(
scoringFileId,
[](ZBFindEmailResponse response) {
cout << response.toString() << endl;
},
[](ZBErrorResponse errorResponse) {
cout << errorResponse.toString() << endl;
}
);
Se recomienda realizar el desarrollo en Linux.
Después de revisar el repositorio, construye la biblioteca y luego ejecuta las pruebas.
./build/bin/ZeroBounceTests
Deberías ver una salida como esta:
[==========] 26 pruebas desde 1 suite de pruebas se ejecutaron. (7 ms en total)
[ PASSED ] 26 pruebas.