ラベル
`labels->list`、`listAll`、`iterate`、`listColors`、`get`、`create`、`update`、`delete`。
すべてのメソッド
$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 を 1 つ返し、listAll と iterate はすべてのページをたどります。listAll は 1 つの配列を返し、iterate はラベルを 1 つずつ yield する Generator を返します。各ラベルは camelCase のキーを持つ配列で、色、threadCount、作成日時と最終更新日時を持ちます。listColors はアプリが提供するパレット(単色 14 種とグラデーション 7 種)を、ページ分割なしの配列の通常のリストとして返します。type は常に user です。id はラベルを作成したときの名前から作られるため、Invoices は USER_INVOICES になり、変わることはありません。
create と update のフィールドは API の名前どおりのキーを持つ 1 つの配列なので、色は '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` としてスローされます。ワークスペースのラベルが 50 個に達すると、`create` は 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- ラベルの id で、`get`、`update`、`delete`、`threads->update` が受け取るものです。名前を変えても変わりません。
namestring- ユーザーに見える名前。
typestring- 常に `user`。システムラベルがここで返されることはなく、`get` にシステム id を渡すと 404 になり、`NotFoundException` としてスローされます。
colorarray or null- ラベルに色がない場合は null です。
color.backgroundColorstring- 保存された色:16 進数の値またはグラデーションのトークンです。グラデーションの両端は `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- アプリがこの色見本の上に描く文字色。