DraftsでNotionページを検索する

この記事では、Draftsを使用してNotionページを検索する方法を解説します。Notion APIとDrafts Scriptを活用し、効率的な情報管理を実現します。

Notionクラスを使う

Notion APIのラッパーであるNotionクラスをDraftsで使用する方法について説明します。Notion APIの基本概念と、Notionクラスを使用する手順を解説します。

Notion APIの基本概要

Notion APIはデータベースやページの作成、編集、検索などを可能にする強力なツールです。通常、APIを使用するためには事前にインテグレーションキーの登録など、いくつかの手順が必要です。しかしDraftsではその手順を飛ばして、Draftsが扱いたいデータベースを選ぶだけで使うことができます。

詳しくは、こちらの記事を参照してください。

Notionデータベースの検索手順

NotionのデータベースをDraftsから検索する具体的な手順を紹介します。検索クエリの作成から、検索結果の処理方法までを解説します。

検索クエリの構築

効果的な検索を行うためのクエリの構築方法を説明します。複数のフィルターやソート条件を使って、目的に合った情報を簡単に見つける方法を提供します。

フィルターやソート条件は、hashを作って渡します。フィルタソート条件を作るためのhashのルールは、Notion APIのリファレンスを参照して、作ります。

データベースを検索するには、post database query のendpointを使います。

データベースIDは予め準備しておいてください。DraftsのActionでScriptを追加し、以下のスクリプトを書いてください。このアクションを実行すると、データベースから条件に合うページの一覧を検索できます。

var notion = Notion.create();
let database_id = {database_id};
let endpoint = "https://api.notion.com/v1/databases/" + database_id + "/query";
let method = "POST";
let data = "{
  "filter": {
    "or": [
      {
        "property": "In stock",
        "checkbox": {
          "equals": true
        }
      },
      {
        "property": "Cost of next trip",
        "number": {
          "greater_than_or_equal_to": 2
        }
      }
    ]
   },
   "sorts": [
      {
        "property": "Last ordered",
        "direction": "ascending"
      }
    ]
}"

let response = notion.request({
	"url": endpoint,
 	"method": method,
	"data": data
});
if (response.statusCode != 200) {
	console.log(`Notion Error: ${response.statusCode} ${notion.lastError}`);
	context.fail();
}

なお、変数 data はNotionに書いてあったsampleをそのまま使用しています。この条件は、お使いのデータベースに合わせて変更してください。

すべてのページを検索するには、dataを次のように定義してください。

let data = "";

これですべてのページを取得できます。

検索結果の処理と表示

検索結果を適切に処理し、Drafts上で表示する方法を紹介します。responseに含まれるJSON形式のデータを解析してDraftsに表示します。データベース内のページ名が「Name」という名前だった時、ページの一覧をdraftsに書き込むには以下のような書き方をします。

let body = JSON.parse(response.responseText);
body["results"].forEach(note => {
  let name = note["properties"]["Name"]["title"][0]["plain_text"];
  draft.append(name);
}

draft.update();

これを先程のスクリプトの後ろに追加して、アクションを実行するとページ一覧が開いているdraftに追記されます。

Draftsでの活用例

例えば、読んだ本を登録し、読書メモを追加するデータベースがあったとします。データベースを検索してDraftsと組み合わせることで、こんなこともActionとして作ることができます。

・読んだ本の名前をテキストで一覧化する

・Draftsに書いた読書メモを、読んだ本のページに貼り付ける

Draftsは気軽にメモを撮ることができるアプリです。ちょっとした時間に本を読んで細かくメモを取っておき、メモごとにNotionに追記してゆくということを気軽にできるようになります。もしよければぜひ試してみてください。

プログラミングができるとほしいと思ったDraftsのアクションを自分で作ることができます。

はじめてのプログラミングコース


コメント

タイトルとURLをコピーしました