Zur Dokumentation springen
PHP

Labels

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

Jede Methode

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 gibt eine OpenEmail\Result\Page mit nach Namen sortierten Labels zurück, und listAll und iterate durchlaufen jede Seite. listAll gibt ein einziges Array zurück, und iterate gibt einen Generator zurück, der ein Label nach dem anderen liefert. Jedes Label ist ein Array mit camelCase-Schlüsseln, das seine Farbe, threadCount und die Zeitpunkte trägt, zu denen es angelegt und zuletzt geändert wurde. listColors gibt die Palette der App zurück, vierzehn Volltonfarben und sieben Verläufe, als einfache Liste von Arrays ohne Seiten. type ist immer user. Die id stammt aus dem Namen, unter dem das Label angelegt wurde, Invoices ist also USER_INVOICES, und sie ändert sich nie.

Die Felder von create und update sind die Schlüssel eines Arrays mit den Namen der API, eine Farbe ist also 'color' => ['backgroundColor' => '#3B82F6'].

Ein Label gehört zum Workspace, eine Umbenennung, Umfärbung oder Löschung ändert es also für jedes Mitglied und jeden Schlüssel. threads->update setzt Labels auf eine Unterhaltung und nimmt sie wieder ab, und $client->threads->list(folder: 'USER_INVOICES') listet jede Unterhaltung, die eines trägt. Die Seite Threads behandelt beides.

Parameter: labels->create und labels->update

namestring
Der Anzeigename des Labels, vor dem Messen um Leerraum gekürzt, das Limit liegt also bei 1 bis 225 Zeichen nach dem Kürzen. Bei `create` erforderlich und bei `update` optional, wo Weglassen den Namen behält. Nur Leerraum ergibt einen 422. Ein Name, den schon ein anderes Label hat, ohne Beachtung der Groß- und Kleinschreibung verglichen, ergibt einen 409 `label_name_taken`, geworfen als `ConflictException`. `create` lehnt ab, sobald der Workspace 50 Labels hat, mit einem 422 `label_limit_reached`, geworfen als `ValidationException`.
colorarray or null
Bei beiden Aufrufen optional. Weglassen bei `update` behält die gespeicherte Farbe, und `'color' => null` löscht sie. Der Body ist strikt, ein knapp danebenliegender Schlüssel wie `colour` ergibt daher einen 422 und kein stilles Nichtstun.
color.backgroundColorstringerforderlich
Eine Hex-Farbe (`#RGB`, `#RGBA`, `#RRGGBB` oder `#RRGGBBAA`, in Großbuchstaben gespeichert) oder ein Verlaufs-Token: `gradient:sunset`, `gradient:ember`, `gradient:meadow`, `gradient:lagoon`, `gradient:aurora`, `gradient:berry` oder `gradient:midnight`. Ein leerer String bedeutet keine Farbe, alles andere ergibt 422 `invalid_parameter`.
color.textColorstring
Wird angenommen und ignoriert. Die Schriftfarbe wird aus `backgroundColor` berechnet, genauso wie in der App.

Antwort: ein Label

Ein Label ist ein Array mit camelCase-Schlüsseln, $label['threadCount'] liest also die Anzahl, und $label['color']['backgroundColor'] ?? null liest die Farbe und ergibt null, wenn das Label keine hat.

objectstring
Immer der String `label`. `create` und `update` geben dasselbe Array zurück, so gelesen, wie es gespeichert ist.
idstring
Die id des Labels und das, was `get`, `update`, `delete` und `threads->update` nehmen. Sie ändert sich nie, auch nicht nach einer Umbenennung.
namestring
Was der Nutzer sieht.
typestring
Immer `user`. System-Labels werden hier nie ausgeliefert, und eine System-id bei `get` ergibt einen 404, geworfen als `NotFoundException`.
colorarray or null
null, wenn das Label keine Farbe hat.
color.backgroundColorstring
Die gespeicherte Farbe: ein Hex-Wert oder ein Verlaufs-Token. `listColors` liefert die beiden Enden eines Verlaufs.
color.textColorstring
Die Schriftfarbe, die die App auf die Farbe zeichnet, `#18181B` oder `#FFFFFF`, auf dem Server berechnet statt gespeichert.
threadCountint
Wie viele Unterhaltungen das Label gerade tragen. Für einen auf bestimmte Adressen beschränkten Key zählen nur Unterhaltungen, die an diese zugestellt wurden.
createdAtstring or null
Wann das Label angelegt wurde, als ISO 8601, oder null bei einem Label, das angelegt wurde, bevor diese Zeiten erfasst wurden.
updatedAtstring or null
Die letzte Umbenennung oder Umfärbung, als ISO 8601, oder null bei einem Label, das angelegt wurde, bevor diese Zeiten erfasst wurden.

Antwort: ein Farbfeld (labels->listColors)

kindstring
Ob das Farbfeld eine Farbe oder ein Verlauf ist: `solid` oder `gradient`.
namestring
Der Name des Farbfelds, etwa `red` oder `sunset`.
valuestring
Was als `color.backgroundColor` zu senden ist, um dieses Farbfeld zu verwenden.
solidstring
Ein einzelner Hex-Wert für Stellen, an denen kein Verlauf gezeichnet werden kann. Bei einer Volltonfarbe dasselbe wie `value`.
fromstring or null
Wo ein Verlauf beginnt, im Winkel von 135 Grad gezeichnet. null bei einer Volltonfarbe.
tostring or null
Wo ein Verlauf endet. null bei einer Volltonfarbe.
textColorstring
Die Schriftfarbe, die die App auf dieses Farbfeld zeichnet.