ドキュメント本文へスキップ
Ruby

ラベル

`labels.list`、`list_all`、`iterate`、`list_colors`、`get`、`create`、`update`、`delete`。

すべてのメソッド

labels.rb
page = client.labels.list(limit: 50)every = client.labels.list_allcolors = client.labels.list_colorsputs page.items.size, every.size, colors.size client.labels.iterate do |row|  puts "#{row[:name]} #{row[:threadCount]}"end 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])puts label[:name], label.dig(:color, :backgroundColor) client.labels.delete(created[:id])

list は名前順に並んだラベルの OpenEmail::Page を 1 つ返し、list_all と iterate はすべてのページをたどります。list_all は 1 つの Array を返し、iterate はラベルを 1 つずつブロックに yield するか、ブロックがなければ Enumerator を返します。各ラベルは Symbol キーの Hash で、色、threadCount、作成日時と最終更新日時を持ちます。list_colors はアプリが提供するパレット(単色 14 種とグラデーション 7 種)を、ページ分割なしの Hash の素の Array として返します。type は常に user です。id はラベルを作成したときの名前から作られるため、Invoices は USER_INVOICES になり、変わることはありません。

create と update のフィールドはキーワード引数または 1 つの Hash で、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` になり、`OpenEmail::ConflictError` として送出されます。ワークスペースのラベルが 50 個に達すると、`create` は 422 `label_limit_reached` で拒否し、`OpenEmail::ValidationError` として送出されます。
colorHash or nil
どちらの呼び出しでも省略可能です。`update` で省略すると保存済みの色が保持され、`color: nil` で消去されます。ボディは厳密なので、`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` から算出される。

レスポンス:ラベル

ラベルは Symbol キーの Hash なので、label[:threadCount] で件数を読めます。label.dig(:color, :backgroundColor) は色を読み、ラベルに色がなければ nil を返します。

objectString
常に文字列 `label`。`create` と `update` も、保存されたとおりに読み戻した、これと同じ Hash を返します。
idString
ラベルの id で、`get`、`update`、`delete`、`threads.update` が受け取るものです。名前を変えても変わりません。
nameString
ユーザーに見える名前。
typeString
常に `user`。システムラベルがここで返されることはなく、`get` にシステム id を渡すと 404 になり、`OpenEmail::NotFoundError` として送出されます。
colorHash or nil
ラベルに色がない場合は nil です。
color.backgroundColorString
保存された色:16 進数の値またはグラデーションのトークンです。グラデーションの両端は `list_colors` で得られます。
color.textColorString
アプリがその色の上に描く文字色で、`#18181B` か `#FFFFFF`。保存されずサーバーで算出される。
threadCountInteger
現在そのラベルが付いている会話の数。特定のアドレスに限定されたキーでは、そのアドレスに配信された会話だけが数えられる。
createdAtString or nil
ラベルが作られた時刻で ISO 8601 形式。これらの時刻が記録されるようになる前に作られたラベルでは nil です。
updatedAtString or nil
最後に名前または色が変更された時刻で ISO 8601 形式。これらの時刻が記録されるようになる前に作られたラベルでは nil です。

レスポンス:カラースウォッチ(labels.list_colors)

kindString
スウォッチが単色かグラデーションか:`solid` または `gradient`。
nameString
色見本の名前。`red` や `sunset` など。
valueString
この色見本を使うために `color.backgroundColor` として送る値。
solidString
グラデーションを描けない場所のための単一の hex。単色では `value` と同じ。
fromString or nil
グラデーションの始まりの色で、135 度の角度で描かれます。単色では nil です。
toString or nil
グラデーションの終わりの色。単色では nil です。
textColorString
アプリがこの色見本の上に描く文字色。