• Home
  • A W E S O M E . のブロック取得数の上限を変更する

A W E S O M E . のブロック取得数の上限を変更する

thumbnail

A W E S O M E . でブログを書いていると、Notion のブロック数を上限 50 までしか取れていないことがわかりました。

今回はその原因と対応方法についてを解説します。

原因と対応

Notion の API の仕様で、一度に取得するブロック数の上限は 100 までとなっています。

Notion API のページより引用
Notion API のページより引用

上記の仕様であれば、デフォルトは 100 なので 100ブロックはとれそうです。

A W E S O M E . のソースコードを確認してみます。

export const getBlocks = async (blockId: string) => {
  const response = await notion.blocks.children.list({
    block_id: blockId,
    page_size: 50,
  });
  return response.results as BlockObjectResponse[];
};

page_size が 50 になっていました。

page_size を 100 に変更すると、100ブロックまで取得することができます。

100ブロック以上取得するためには

100 ブロック以上取得するためには、 while 分などでブロックが無くなるまで何度かブロックを取得しなおすという対応が必要そうです。その際にはおそらく、上記の Notion API のページに記載されている start_cursor が使えそうです。

現状、100ブロック以上の記事は書いていないのでまだ対応していませんが、今後対応しようと思います。

avatar

PROFILE

チャベス

Product Development Engineer, Notioner

TAG