はじめに
NotionRubyMapping 解説の第23回目です。これまで特別な親クラスを持つ Block を紹介してきましたが、今日からは単に Block の子クラスの Block を紹介していきます。今日は LinkToPageBlock
を紹介します。今日の作業ページはこちらです。
あらかじめページを取得しておきます。
irb(main):002> page = Page.find "https://hkob.notion.site/LinktoPageBlock-a22caaafe80c4dee8a042955d2ef732e?pvs=4" => NotionRubyMapping::Page-a22caaafe80c4dee8a042955d2ef732e
LinkToPageBlock
LinkToPageBlock
はページの参照を保持してくれるブロックです。逆引き Formula のページを参照しようとしたところ、以下のようなエラーになりました。
irb(main):004> ltp = page.append_block_children LinkToPageBlock.new(page_id: "fbafcd96e1cc4f3982d914931af4969b") /Users/hkob/.rbenv/versions/3.3.0/lib/ruby/gems/3.3.0/gems/notion_ruby_mapping-0.8.3/lib/notion_ruby_mapping/blocks/base.rb:142:in `append_block_children': {"object"=>"error", "status"=>400, "code"=>"validation_error", "message"=>"Only blocks within the same workspace and that are accessible to the integration can be synced", "request_id"=>"5c25ee74-b117-4b1d-9a65-76fe70a301c8"} (StandardError) from (irb):4:in `<main>' from <internal:kernel>:187:in `loop' from /Users/hkob/.rbenv/versions/3.3.0/lib/ruby/gems/3.3.0/gems/irb-1.11.1/exe/irb:9:in `<top (required)>' from /Users/hkob/.rbenv/versions/3.3.0/bin/irb:25:in `load' from /Users/hkob/.rbenv/versions/3.3.0/bin/irb:25:in `<main>'
リンク先の逆引きフォーミュラのページもインテグレーションキーに対して権限が必要とのことでした。このため、一時的に逆引き Formula にこのブログ用のインテグレーションキーの権限を追加してやり直しました。今度はうまくいったようです。
irb(main):005> ltp = page.append_block_children LinkToPageBlock.new(page_id: "fbafcd96e1cc4f3982d914931af4969b") => NotionRubyMapping::LinkToPageBlock-da879faa4d264ed19c0fcff21d3b3b49
結果は以下のようになりました。
LinkToPageBlock
という名前ですが、database_id
キーワードでデータベースのリンクも保持できます。
irb(main):006> dtp = page.append_block_children LinkToPageBlock.new(database_id: "f50fe9be119c41d1b2e0b99bbab471a8") => NotionRubyMapping::LinkToPageBlock-2acc8b24ab9c4225a82b5268bd95afec
以下のようにデータベースへのリンクも追加されました。
おわりに
今回は単なる Block の子クラスである LinkToPageBlock
を解説してみました。今日も外出していたので記事は短めです。すみません。
LinkToPageBlock
のマニュアルはこちら。