Un contacto.
La agenda, encadenando páginas.
La agenda de la organización, de la más reciente a la más antigua.
No hay filtro por red que funcione. El servidor acepta un social_network que compara el
array social_identifiers entero contra el nombre de la red, así que no casa nunca y la lista
vuelve vacía; por eso este método no lo expone. Filtra sobre social_identifiers en memoria.
Como update, pero leyendo el contacto antes para no perder su extra_data.
Son DOS peticiones y no es gratis; existe porque el borrado silencioso de extra_data es el
fallo que se comete una vez y se descubre semanas después. Lo que se pase en extra_data se
funde sobre lo que había, campo a campo; para vaciarlo de verdad, update() con
extra_data: {}.
Optionalextra_data?: {Optionaladdress?: stringOptionalboolean_property?: booleanOptionalboolean_property2?: booleanOptionalbuilding?: string | numberOptionalcity?: stringOptionalcoords?: number[]Optionalcountry?: stringOptionalcountry_code?: stringOptionaldoor?: string | numberOptionalfloor?: string | numberOptionalnumber?: string | numberOptionalnumber_property?: numberOptionalnumber_property2?: numberOptionalplace_id?: stringOptionalstate?: stringOptionalstring_property?: stringOptionalstring_property2?: stringOptionalzip_code?: string | numberOptionalname?: stringOptionalprofile_image?: stringOptionalsocial_identifiers?: {Borra el contacto y todos sus mensajes.
Borra TODOS los contactos de la organización y TODOS sus mensajes.
No pide confirmación y no hay vuelta atrás. Está aquí porque la API lo tiene, no porque sea una operación de todos los días.
Cambia un contacto. No devuelve el contacto: la API contesta {success: true}, así que
este método no devuelve nada y hay que volver a pedirlo si se quiere ver el resultado.
CUIDADO CON extra_data: es el único campo que NO se conserva al omitirlo. El servidor lo
escribe con lo que traiga el cuerpo, así que un update() sin extra_data deja el contacto
sin ninguno de sus campos propios. name, profile_image y social_identifiers sí se
respetan cuando no viajan. Para no tener que acordarse, merge.
social_identifiers REEMPLAZA la lista entera, no se funde con ella.
Optionalextra_data?: {Optionaladdress?: stringOptionalboolean_property?: booleanOptionalboolean_property2?: booleanOptionalbuilding?: string | numberOptionalcity?: stringOptionalcoords?: number[]Optionalcountry?: stringOptionalcountry_code?: stringOptionaldoor?: string | numberOptionalfloor?: string | numberOptionalnumber?: string | numberOptionalnumber_property?: numberOptionalnumber_property2?: numberOptionalplace_id?: stringOptionalstate?: stringOptionalstring_property?: stringOptionalstring_property2?: stringOptionalzip_code?: string | numberOptionalname?: stringOptionalprofile_image?: stringOptionalsocial_identifiers?: {
Da de alta un contacto, o devuelve el que ya había.
Hace falta al menos un identificador (error 1601): un contacto sin canal es un contacto al que nadie puede escribir. Y si ya existe uno con el primer canal y el mismo
external_identifier, vuelve ÉSE tal cual, sin aplicar nada de lo que se mandó.