はじめに
hkob の雑記録の第544回目(連続118日目)は、Notion Developer Changelog の 7/1 を解説します。
Icon names and database icons
7/1 の Changlog は以下のようになっていました。

ネイティブアイコンを設定する際に、
nameでアイコンピッカー上の名前も受け付けるようになりました。そのため、"token"や"star circle"のような値で同じ Notion アイコンを設定できます。databases.retrieveは Notion UI で設定されたアイコンを返すようになり、dataSources.retrieveで表示されるアイコンと一致するようになりました。
1つ目のアップデートは、アイコンピッカー上の名前も受け付けるような payload が追加された件です。今回のアップデートでは icon というキーワードが増え、以下のような payload を記載するようになります。
"icon": { "type": "icon", "icon": { "name": "home", "color": "orange" } }
color の部分には以下のものが設定できるそうです。gray, lightgray, brown, yellow, orange, green, blue, purple, pink, red 。これまでは External でアイコン画像の URL を渡す必要があったので、簡単になりました。現在は、retrieve でもこの name の形で表示されるようです。
irb(main):001> page = Page.find "https://www.notion.so/hkob-private/Notion-Icon-names-and-database-icons-Notion-Changelog-7-1-hkob-544-3950ce2a65208089af60c0d2928e64f4?source=copy_link#3950ce2a6520801fa30ed3662c2b235a" page.icon => NotionRubyMapping::Page-3950ce2a65208089af60c0d2928e64f4 irb(main):002> page.icon => {"type" => "icon", "icon" => {"name" => "window", "color" => "gray"}}
もう一つのアップデートは Database で取得されるアイコンについてです。現在では、Data Source で表示されるアイコンと同じものが返却されるようになり、これらが一致するようになったそうです。こちらも確認してみましょう。確かに同じものが返却されるようになったようです。
irb(main):003> ds = DataSource.find "1f70ce2a-6520-80ce-bc36-000b08bc3b11" => NotionRubyMapping::DataSource-1f70ce2a652080cebc36000b08bc3b11 irb(main):004> ds.icon => {"type" => "icon", "icon" => {"name" => "checklist", "color" => "gray"}} irb(main):005> db = ds.parent => NotionRubyMapping::Database-1f70ce2a652080db9569e58b8eb84e98 irb(main):006> db.icon => {"type" => "icon", "icon" => {"name" => "checklist", "color" => "gray"}}
おわりに
今回は Icon にまつわる二つのアップデートでした。細かいことですが、簡単にアクセスできるようになって便利になりますね。NotionRubyMapping でも Payload のアップデートをしておこうと思います。