Перейти к документации
PHP

Метки

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

Все методы

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 возвращает одну OpenEmail\Result\Page ярлыков, отсортированных по имени, а listAll и iterate обходят все страницы. listAll возвращает один массив, а iterate возвращает Generator, который выдаёт ярлыки по одному. Каждый ярлык является массивом с ключами в camelCase, который несёт цвет, threadCount и время создания и последнего изменения. listColors возвращает палитру, которую предлагает приложение, четырнадцать сплошных цветов и семь градиентов, как обычный список массивов без постраничной выдачи. type всегда равен user. Идентификатор образуется из имени, с которым ярлык был создан, поэтому Invoices становится USER_INVOICES, и он никогда не меняется.

Поля create и update являются ключами одного массива с именами из API, поэтому цвет задаётся как 'color' => ['backgroundColor' => '#3B82F6'].

Ярлык принадлежит рабочему пространству, поэтому переименование, смена цвета или удаление меняют его для всех участников и всех ключей. threads->update навешивает ярлыки на переписку и снимает их, а $client->threads->list(folder: 'USER_INVOICES') выводит все переписки с этим ярлыком. Оба случая описаны на странице о цепочках.

Параметры: labels->create и labels->update

namestring
Отображаемое имя ярлыка. Перед измерением пробелы по краям обрезаются, поэтому предел составляет от 1 до 225 символов после обрезки. Обязательно в `create` и необязательно в `update`, где без него имя сохраняется. Одни пробелы дают 422. Имя, которое уже есть у другого ярлыка (сравнение без учёта регистра), даёт 409 `label_name_taken`, выбрасываемый как `ConflictException`. `create` отказывает, когда в рабочем пространстве уже 50 ярлыков, с 422 `label_limit_reached`, выбрасываемым как `ValidationException`.
colorarray or null
Необязательно в обоих вызовах. Если не указать его в `update`, сохранённый цвет остаётся, а `'color' => null` его очищает. Тело запроса строгое, поэтому ключ с опечаткой вроде `colour` даёт 422, а не молча ничего не делает.
color.backgroundColorstringобязательно
Hex-цвет (`#RGB`, `#RGBA`, `#RRGGBB` или `#RRGGBBAA`, хранится в верхнем регистре) или токен градиента: `gradient:sunset`, `gradient:ember`, `gradient:meadow`, `gradient:lagoon`, `gradient:aurora`, `gradient:berry` или `gradient:midnight`. Пустая строка означает «без цвета», а всё остальное даёт 422 `invalid_parameter`.
color.textColorstring
Принимается и игнорируется. Цвет текста вычисляется из `backgroundColor`, так же как в приложении.

Ответ: ярлык

Ярлык является массивом с ключами в camelCase, поэтому $label['threadCount'] читает количество, а $label['color']['backgroundColor'] ?? null читает цвет и даёт null, если у ярлыка его нет.

objectstring
Всегда строка `label`. `create` и `update` возвращают этот же массив, прочитанный обратно в сохранённом виде.
idstring
Идентификатор ярлыка, который принимают `get`, `update`, `delete` и `threads->update`. Никогда не меняется, даже после переименования.
namestring
То, что видит пользователь.
typestring
Всегда `user`. Системные ярлыки здесь никогда не отдаются, а системный идентификатор в `get` даёт 404, выбрасываемый как `NotFoundException`.
colorarray or null
null, если у ярлыка нет цвета.
color.backgroundColorstring
Сохранённый цвет: шестнадцатеричное значение или токен градиента. `listColors` даёт два конца градиента.
color.textColorstring
Цвет текста, который приложение рисует поверх цвета, `#18181B` или `#FFFFFF`; вычисляется на сервере, а не хранится.
threadCountint
Сколько переписок несут метку сейчас. Для ключа, ограниченного отдельными адресами, учитываются только переписки, доставленные на эти адреса.
createdAtstring or null
Когда метку создали, в ISO 8601, или null у метки, созданной до того, как эти даты начали записываться.
updatedAtstring or null
Последнее переименование или перекраска, в ISO 8601, или null у метки, созданной до того, как эти даты начали записываться.

Ответ: образец цвета (labels->listColors)

kindstring
Является ли образец одним цветом или градиентом: `solid` или `gradient`.
namestring
Имя образца, например `red` или `sunset`.
valuestring
Что отправить как `color.backgroundColor`, чтобы использовать этот образец.
solidstring
Один hex для мест, где градиент нарисовать нельзя. У сплошного цвета совпадает с `value`.
fromstring or null
Где начинается градиент, который рисуется под углом 135 градусов. null у сплошного цвета.
tostring or null
Где заканчивается градиент. null у сплошного цвета.
textColorstring
Цвет текста, который приложение рисует на этом образце.