はじめに
hkob の雑記録の第352回目は、Notion API 活用術の初版時に紹介が抜けていたブロックや当時存在していなかったブロックなどの説明を追記していきます。本記事は2025年ユカスタマスの18日目(2023年ユカスタマスの749日目)の記事になります。
Audio block object
初版では紹介が漏れていたのが Audio block です。NotionRubyMapping でも実装が漏れていたので仕方ないですね。一昨日 AudioBlock を追加したので、ここに追加しました。

こちらについては、本文はほぼ Video block と同じです。JSON も type と audio のみ紹介します。
print JSON.pretty_generate(blocks[30].json) { (中略) "type": "audio", "audio": { "caption": [], "type": "external", "external": { "url": "https://download.samplelib.com/mp3/sample-3s.mp3" } } }=> nil
Child page block
これも初版の頃からあったのに紹介が漏れていたものです。ページタイトルの plain_text を title キー値に持つのみでした。

print JSON.pretty_generate(blocks[31].json) { (中略) "type": "child_page", "child_page": { "title": "子ページ" } }=> nil
Child database block
こちらも Child page block と同じです。データベースタイトルの plain_text を title キー値に持つのみです。

print JSON.pretty_generate(blocks[32].json) { (中略) "type": "child_database", "child_database": { "title": "子データベース" } }=> nil
その他のブロック
改訂版では Notion API でサポートされていないブロックについてもついきました。ここでは、ボタンブロック、AI meeting note ブロック、カスタム AI block などを紹介しました。

JSON は以下のようになっています。
print JSON.pretty_generate(blocks[33].json) { (中略) "type": "unsupported", "unsupported": {} }=> nil
List object
List object の節はほとんど変更がないのですが、後半でデータベース内のページを1ページだけ取得する部分がありました。現在は query はデータベースではなくデータソースに対して実行するように変更されたので、以下のようにメソッドを修正しました。
# データベースから上限 1 で無条件検索 list2 = ds.query_data_source(Query.new page_size: 1) => NotionRubyMapping::List- print JSON.pretty_generate(list2.json) { "object": "list", "results": [(中略: 1 件の Page block], "next_cursor": "2bcd8e4e-98ab-81c5-963c-dbc38ea9d93f", "has_more": true, "type": "page", "page": { } }=> nil
おわりに
今回でようやくブロック要素が完了しました。次はプロパティ要素について確認していきます。