Ir a la documentación
PHP

Etiquetas

`labels->list`, `listAll`, `iterate`, `listColors`, `get`, `create`, `update` y `delete`.

Todos los métodos

labels.php
$page = $client->labels->list(limit: 50);$every = $client->labels->listAll();$colors = $client->labels->listColors();echo count($page), ' ', count($every), ' ', count($colors), PHP_EOL; foreach ($client->labels->iterate() as $row) {    echo $row['name'], ' ', $row['threadCount'], PHP_EOL;} $created = $client->labels->create([    'name' => 'Invoices',    'color' => ['backgroundColor' => 'gradient:sunset'],]); $client->labels->update($created['id'], ['name' => 'Invoices 2027']);$client->labels->update($created['id'], ['color' => ['backgroundColor' => '#3B82F6']]); $label = $client->labels->get($created['id']);echo $label['name'], ' ', $label['color']['backgroundColor'] ?? 'no colour', PHP_EOL; $client->labels->delete($created['id']);

list devuelve una OpenEmail\Result\Page de etiquetas ordenadas por nombre, y listAll e iterate recorren todas las páginas. listAll devuelve un solo array, e iterate devuelve un Generator que entrega las etiquetas de una en una. Cada etiqueta es un array con claves en camelCase que lleva su color, threadCount y cuándo se creó y se cambió por última vez. listColors devuelve la paleta que ofrece la app, catorce sólidos y siete degradados, como una lista simple de arrays sin paginación. type es siempre user. El id sale del nombre con el que se creó la etiqueta, así que Invoices es USER_INVOICES, y no cambia nunca.

Los campos de create y update son las claves de un array con los nombres de la API, así que un color es 'color' => ['backgroundColor' => '#3B82F6'].

Una etiqueta pertenece al espacio de trabajo, así que renombrarla, recolorearla o eliminarla la cambia para todos los miembros y todas las claves. threads->update pone y quita etiquetas de una conversación, y $client->threads->list(folder: 'USER_INVOICES') lista todas las conversaciones que llevan una. La página Hilos cubre ambas cosas.

Parámetros: labels->create y labels->update

namestring
El nombre visible de la etiqueta, recortado antes de medirse, así que el límite es de 1 a 225 caracteres tras el recorte. Obligatorio en `create` y opcional en `update`, donde omitirlo conserva el nombre. Solo espacios es un 422. Un nombre que ya tiene otra etiqueta, comparado sin distinguir mayúsculas, es un 409 `label_name_taken`, lanzado como `ConflictException`. `create` rechaza la llamada cuando el espacio de trabajo ya tiene 50 etiquetas, con un 422 `label_limit_reached`, lanzado como `ValidationException`.
colorarray or null
Opcional en ambas llamadas. Omitirlo en `update` conserva el color almacenado, y `'color' => null` lo borra. El cuerpo es estricto, así que una clave casi correcta como `colour` es un 422 y no una operación silenciosa sin efecto.
color.backgroundColorstringobligatorio
Un color hexadecimal (`#RGB`, `#RGBA`, `#RRGGBB` o `#RRGGBBAA`, guardado en mayúsculas) o un token de degradado: `gradient:sunset`, `gradient:ember`, `gradient:meadow`, `gradient:lagoon`, `gradient:aurora`, `gradient:berry` o `gradient:midnight`. Una cadena vacía significa sin color, y cualquier otra cosa es un 422 `invalid_parameter`.
color.textColorstring
Se acepta y se ignora. La tinta se calcula a partir de `backgroundColor`, igual que en la app.

Respuesta: una etiqueta

Una etiqueta es un array con claves en camelCase, así que $label['threadCount'] lee el recuento, y $label['color']['backgroundColor'] ?? null lee el color y da null cuando la etiqueta no tiene.

objectstring
Siempre la cadena `label`. `create` y `update` devuelven este mismo array, leído tal como se guarda.
idstring
El id de la etiqueta, y lo que aceptan `get`, `update`, `delete` y `threads->update`. No cambia nunca, ni siquiera tras un cambio de nombre.
namestring
Lo que ve el usuario.
typestring
Siempre `user`. Aquí nunca se sirven etiquetas de sistema, y un id de sistema en `get` es un 404, lanzado como `NotFoundException`.
colorarray or null
Es null cuando la etiqueta no tiene color.
color.backgroundColorstring
El color almacenado: un valor hexadecimal o un token de degradado. `listColors` da los dos extremos de un degradado.
color.textColorstring
La tinta que la app dibuja sobre el color, `#18181B` o `#FFFFFF`, calculada en el servidor en lugar de almacenada.
threadCountint
Cuántas conversaciones llevan la etiqueta ahora. Para una clave limitada a ciertas direcciones, solo cuentan las conversaciones entregadas a ellas.
createdAtstring or null
Cuándo se creó la etiqueta, en ISO 8601, o null en una etiqueta creada antes de que se registraran estas fechas.
updatedAtstring or null
El último cambio de nombre o de color, en ISO 8601, o null en una etiqueta creada antes de que se registraran estas fechas.

Respuesta: una muestra de color (labels->listColors)

kindstring
Si la muestra es un solo color o un degradado: `solid` o `gradient`.
namestring
El nombre de la muestra, como `red` o `sunset`.
valuestring
Lo que hay que enviar como `color.backgroundColor` para usar esta muestra.
solidstring
Un único hexadecimal para los sitios donde no se puede dibujar un degradado. Igual que `value` en un sólido.
fromstring or null
Dónde empieza un degradado, dibujado a 135 grados. Es null en un sólido.
tostring or null
Dónde termina un degradado. Es null en un sólido.
textColorstring
La tinta que la app dibuja sobre esta muestra.