この記事では、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のアクションを自分で作ることができます。
コメント