A W E S O M E でブログを書いていると、Notion のブロック数を上限 50 までしか取れていないことがわかりました。
今回はその原因と対応方法についてを解説します。
原因と対応
Notion の API の仕様で、一度に取得するブロック数の上限は 100 までとなっています。
上記の仕様であれば、デフォルトは 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ブロック以上の記事は書いていないのでまだ対応していませんが、今後対応しようと思います。
【Notion AI の要約】 この記事では、Notion のブロック取得数の上限が 50 であることが判明し、その原因と対応方法について解説されています。Notion API の仕様により、一度に取得するブロック数の上限は 100 までとなっています。記事内では、page_size を 100 に変更することで 100 ブロックまで取得することができると説明されており、100 ブロック以上取得するためには、while 分を使って何度かブロックを取得しなおす必要があることが示唆されています。 【記事の文字数】479 文字