Notion API 活用術 改訂作業(12) : hkob の雑記録 (352)

はじめに

hkob の雑記録の第352回目は、Notion API 活用術の初版時に紹介が抜けていたブロックや当時存在していなかったブロックなどの説明を追記していきます。本記事は2025年ユカスタマスの18日目(2023年ユカスタマスの749日目)の記事になります。

Audio block object

初版では紹介が漏れていたのが Audio block です。NotionRubyMapping でも実装が漏れていたので仕方ないですね。一昨日 AudioBlock を追加したので、ここに追加しました。

Audio block object

こちらについては、本文はほぼ Video block と同じです。JSON も typeaudio のみ紹介します。

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 キー値に持つのみでした。

Child page block

print JSON.pretty_generate(blocks[31].json)
{
  (中略)
  "type": "child_page",
  "child_page": {
    "title": "子ページ"
  }
}=> nil

Child database block

こちらも Child page block と同じです。データベースタイトルの plain_text を title キー値に持つのみです。

Child database block

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

おわりに

今回でようやくブロック要素が完了しました。次はプロパティ要素について確認していきます。

hkob.notion.site