Supongamos que desea tener una forma simple y bien respaldada de exportar contactos. Tal vez esto se deba a que está creando una aplicación CRM, creando un cliente de correo electrónico o cualquier otra cosa que necesite admitir y exportar elementos de contacto. Hay una solución fácil para esto: archivos VCF. Se puede crear, editar y exportar un contacto como un archivo vCard (o ‘VCF’) para usarlo en otros dispositivos. Los archivos VCF son útiles para transferir contactos a través de diferentes sistemas y brindan un formato de archivo consistente para representar contactos y una amplia gama de propiedades potenciales.
En este artículo, explicaremos cómo generar sus propios archivos de contacto VCF en Node.js.
Configuración del proyecto e instalación del módulo:
Paso 1: Cree una aplicación Node.js y asígnele el nombre ‘proyecto’ usando el siguiente comando:
mkdir Project && cd Project npm init -y
Paso 2: instale los módulos de dependencia con el siguiente comando:
npm i vcards-js axios
Paso 3: crea el archivo vcard.js usando el siguiente comando:
touch vcard.js
Estructura del proyecto: Aquí está el directorio inicial para este proyecto:
Paso 4: para crear una vCard única, configure algunas propiedades básicas y guárdela en el archivo vcard.js :
vcard.js
let vCardsJS = require('vcards-js'); // This is your vCard instance, that // represents a single contact file let vCard = vCardsJS(); // Set contact properties vCard.firstName = "James"; vCard.middleName = "Daniel"; vCard.lastName = "Smith"; vCard.organization = "GeeksforGeeks"; vCard.title = "Technical Writer"; vCard.email = "james@example.com"; vCard.cellPhone = "+1 (123) 456-789"; // Save contact to VCF file vCard.saveToFile(`james.vcf`);
Paso 5: Para agregar una foto de perfil personalizada a su vCard, deberá convertir la foto de perfil a Base64 y luego configurarla usando el formato de datos Base64. Este ejemplo obtiene una imagen de marcador de posición de una URL, convierte esa imagen obtenida a Base64 y luego establece la foto de perfil en esa imagen en la vCard. Base64 es un formato muy sólido, por lo que es muy posible convertir una imagen local o una imagen de un archivo cargado en Base64 y luego configurar la foto de perfil vCard desde allí. Así es como puede convertir imágenes cargadas a Base64 en el navegador .
Para establecer un cumpleaños personalizado, simplemente establezca la propiedad de cumpleaños en un objeto de fecha de JavaScript simple que represente el cumpleaños del contacto.
Cree el siguiente archivo con el nombre vcard.js :
vcard.js
let vCardsJS = require('vcards-js'); let axios = require('axios'); (async () => { // This is your vCard instance, which // represents a single contact file let vCard = vCardsJS(); // Set contact properties vCard.firstName = "James"; vCard.lastName = "Smith"; // Add a profile photo by fetching from a URL let image = await axios.get("https://via.placeholder.com/300", {responseType: 'arraybuffer'}); // Convert image to base 64 let imageBase64 = Buffer.from(image.data).toString('base64'); // Set vCard photo to the base 64 value of the image vCard.photo.embedFromString(imageBase64, 'image/jpeg'); // Set birthday using a JavaScript date object vCard.birthday = new Date("July 17, 2004"); // Save contact to VCF file vCard.saveToFile(`james-with-photo-and-birthday.vcf`); })();
Paso para ejecutar la aplicación: Para ejecutar este programa, ejecute el siguiente comando:
node vcard.js
Salida: La salida y resultado de nuestro programa es una nueva vCard creada en el directorio del proyecto, con los siguientes contenidos:
COMENZAR:
VERSIÓN DE VCARD:3.0
FN;CONJUNTO DE CARACTERES=UTF-8:James Smith
N;CONJUNTO DE CARACTERES=UTF-8:Smith;James;;;
CUMPLEAÑOS:20040717
FOTO;CODIFICACIÓN=b;TIPO=imagen/jpeg:iVBORw0KGgoAAAANSUhEUgAAASwAAAEsBAMAAACLU5NGAAAAG1BMVEXMzMyWlpacnJyqqqrFxcWxsbGjo6O3t7e+vr6He3KoAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAD90lEQVR4nO3cwW+bSBQH4AcGw5HnJDhHaN3dHO1su9ojNGnPtrUb7dFuIiVHnEo5263Uv3vfGwab1myVA5DV6vcpgeD35HmeGYbJxUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/zOb3N5BRexlu9/Jo+NCQFl/HbWrRK7s6Amcdy3jCfaftyOT/OmsnLxSFqkzu04Ns1Z+RxPOMtUc63fH6U5HP8O5/uo1Vyh9IJhTylwSjz0pV0y4Tex0dJ7iij3ck+WiV3J9RPvVhRLgO5O5V+KOSl7MesnXSRH++jNrlDAWurEW0i6ZOz8jI9mlwaDXkftckd8nXEdgnNVjI2sf6Q+VvLSMiMHJnupHC0j9rkrmlL87Lhs7JK86oM1fowVFq0jdrkjn2QKbMuTEvD8aGsfCQ9th9PbzHeR21yt1KWkUq3et+Tq4tDHpnXfZ67+7Zdltu1itrkbrEuRWVLWdmwHbl0shlXSQ7LLVtFbXLXZUmLphHOHK3IsWVtTg6Lk6PFV1Gb3G1Z9I1Xjb015NpSHq7jfntL7reoaW7JhD+pJQ2537llVuyGO1Em17iWJMt7f3ei/zeZcdGlKLDr1saW5XPV9F9bM2pV1CZ3yDxDZFx0HZcF0z+s8rpwVcuWPo5k1KqoTe7QwD58mp6Js/PUTn4tVEatx2ei3lAzu4M4t3uErQl5PN3YOb84NR+gitrkDnl8J51QNO23hjLH7SqQxxnp0trbfotmo9t0RE27U9k9hFw2PuBfLnVD0d/u9KMs8hNq2svrxFqXJXprZtmg9riXp5v0jTRI4afyn5lv1X8+gRaQ22XA/zT6sxatkgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD65tjf/5gXLYtHb/8l8kNZkVw5zEwjIjei8ru7rtJ7/YqcO3ISorTFsiLvt+eXZY7xlp5sWd6b7KscrpeZ80DBus2y6D1dviY3C+QP/9WUnGWkp8GrhZa1fE3DQiK1ssYrurdlDeblwZ86TzTctFuWf/dxPihy+kw31+/IuTOnm2v98I6EwoTe1cuKLsLEluVm5cFLHHf7pc2JKIPoZl4STpfFHzSRfnEyc5pQrmVJiO7l13yRHpdlPQ0LW5ZTHSInWN23WZZMedMJycUq0aa1FT1F1dyK6MugoHpvuY903Fv0a9Jqb+n7apesHlY0KSvRU6233CV9V5Z/RsdzixbzlsvSuUXL4nFOT9mVtq2nw9yiYPx9WebCHGt3IrW7yOnby51IuyzPKEgv9M31dLgTKUgayioH+oqrdavlsp5hWPTb3jM9vnQBjZyLl64AAP43/gHVSaMe2vmdiAAAAABJRU5ErkJggg==rtJ7/YqcO3ISorTFsiLvt+eXZY7xlp5sWd6b7KscrpeZ80DBus2y6D1dviY3C+QP/9WUnGWkp8GrhZa1fE3DQiK1ssYrurdlDeblwZ86TzTctFuWf/dxPihy+kw31+/IuTOnm2v98I6EwoTe1cuKLsLEluVm5cFLHHf7pc2JKIPoZl4STpfFHzSRfnEyc5pQrmVJiO7l13yRHpdlPQ0LW5ZTHSInWN23WZZMedMJycUq0aa1FT1F1dyK6MugoHpvuY903Fv0a9Jqb+n7apesHlY0KSvRU6233CV9V5Z/RsdzixbzlsvSuUXL4nFOT9mVtq2nw9yiYPx9WebCHGt3IrW7yOnby51IuyzPKEgv9M31dLgTKUgayioH+oqrdavlsp5hWPTb3jM9vnQBjZyLl64AAP43/gHVSaMe2vmdiAAAAABJRU5ErkJggg==rtJ7/YqcO3ISorTFsiLvt+eXZY7xlp5sWd6b7KscrpeZ80DBus2y6D1dviY3C+QP/9WUnGWkp8GrhZa1fE3DQiK1ssYrurdlDeblwZ86TzTctFuWf/dxPihy+kw31+/IuTOnm2v98I6EwoTe1cuKLsLEluVm5cFLHHf7pc2JKIPoZl4STpfFHzSRfnEyc5pQrmVJiO7l13yRHpdlPQ0LW5ZTHSInWN23WZZMedMJycUq0aa1FT1F1dyK6MugoHpvuY903Fv0a9Jqb+n7apesHlY0KSvRU6233CV9V5Z/RsdzixbzlsvSuUXL4nFOT9mVtq2nw9yiYPx9WebCHGt3IrW7yOnby51IuyzPKEgv9M31dLgTKUgayioH+oqrdavlsp5hWPTb3jM9vnQBjZyLl64AAP43/gHVSaMe2vmdiAAAAABJRU5ErkJggg==SaMe2vmdiAAAAABJRU5ErkJggg==SaMe2vmdiAAAAABJRU5ErkJggg==
REV:2022-02-27T19:04:38.635Z
FIN:VCARD
Esta vCard se almacena como el archivo james-with-photo-and-birthday.vcf, como se especifica en el código.
Conclusión: los archivos vCards y VCF pueden ser parte integral de cualquier aplicación basada en contactos que pueda crear. Con vcards-js, es muy sencillo generar y guardar archivos vCard/VCF en Node.