内容
Notion API で、全てのブロックタイプ(ページを含む)に対して、Delete a block を使って削除を実行できるようになった。この作業は Notion のアプリケーションにおけるゴミ箱に追加するという振る舞いに相当する。加えて、この ブロックオブジェクト は削除されたときに、
archived
という boolean 属性を追加する。検証
テスト用に削除するブロックオブジェクトを作成しておく。この下に「削除予定のオブジェクト」という箇条書きを作っておいた。この箇条書きの block_id は「a87896c4b4ed4e429bb0fafa595570e4」だった。
この block_id のオブジェクトを削除するスクリプトを作成した。
#!/bin/sh curl 'https://api.notion.com/v1/blocks/a87896c4b4ed4e429bb0fafa595570e4' \ -H 'Authorization: Bearer '"$NOTION_API_KEY"'' \ -H 'Notion-Version: 2021-08-16' \ -X DELETE \
返ってきた JSON はこちら。「"archived": true」となっており、削除されていることがわかる。
{ "object": "block", "id": "a87896c4-b4ed-4e42-9bb0-fafa595570e4", "created_time": "2021-11-10T13:54:00.000Z", "last_edited_time": "2021-11-10T14:02:00.000Z", "has_children": false, "archived": true, "type": "bulleted_list_item", "bulleted_list_item": { "text": [ { "type": "text", "text": { "content": "削除予定のオブジェクト", "link": null }, "annotations": { "bold": false, "italic": false, "strikethrough": false, "underline": false, "code": false, "color": "default" }, "plain_text": "削除予定のオブジェクト", "href": null } ] } }
せっかくなので、復元も実施してみる。復元するには上に書いてあるように
{archived: false}
に戻せばよい。スクリプトはこんな感じになる。せっかくなので、テキストも「復元したブロック」に変更してみた。#!/bin/sh curl https://api.notion.com/v1/blocks/a87896c4b4ed4e429bb0fafa595570e4\ -H 'Authorization: Bearer '"$NOTION_API_KEY"'' \ -H "Content-Type: application/json" \ -H "Notion-Version: 2021-08-16" \ -X PATCH \ --data '{ "bulleted_list_item": { "text": [{ "text": { "content": "復元したブロック" } }] }, "archived": false }'
返された JSON はこちら。archived が false になっていることを確認できた。
{ "object": "block", "id": "a87896c4-b4ed-4e42-9bb0-fafa595570e4", "created_time": "2021-11-10T13:54:00.000Z", "last_edited_time": "2021-11-10T14:07:00.000Z", "has_children": false, "archived": false, "type": "bulleted_list_item", "bulleted_list_item": { "text": [ { "type": "text", "text": { "content": "復元したブロック", "link": null }, "annotations": { "bold": false, "italic": false, "strikethrough": false, "underline": false, "code": false, "color": "default" }, "plain_text": "復元したブロック", "href": null } ] } }
復元されたブロックはここにあるように一番下に追加された。
- 復元したブロック
Notion API Changelog まとめ