はじめに
最近、評判の高いNotionを導入し、個人的な情報やタスクを管理し始めました。
移動時間にはXを使って技術情報をチェックしたり、週末にやりたいことを思いついたら、Notionのデータベースにメモを残しています。
しかし、スマートフォンからNotionのデータベースに情報を入力しようとすると、クリック回数が多く(特にURLを入力する際には、クリックが多くなってしまいます)、利便性に欠けると感じました。
そこで、爆速(できれば1クリックで完了するような)でデータベースにメモを残せるような仕組みを構築したので、3回に分けて紹介していきます。
- Notion / Notion API ← 今回
- Google Apps Script
- iPhone ショートカット
アーキテクチャ構成
実装
Notion Databaseの作成とAPI経由で作成したデータベースにレコードを追加するための設定を行います。
要約
- Notionインテグレーションを作成する
- シークレットを控える
- データベースを作成する
- ページのコネクトにインテグレーションを追加する
- データベースIDを控える
A. データベースの作成
①任意のページにデータベースを作成する。
Title、URL、Dateの3つのプロパティを設定する。
・Title:技術記事のタイトル or やりたいことの概要
・URL:技術記事のリンク
・Date:追加した日時
②作成したデータベースの「設定」→「ビューのリンクをコピー」を押下し、データベースIDを取得する。
ビューのリンクは、https://www.notion.so/{workspace_name}/{database_id}?v={view_id}
のフォーマットで構成されているので、このdatabase_id
を控える。
B. インテグレーションの作成
①Notionの設定画面の「自分のコネクト」を選択し、「インテグレーションを作成または管理する」を押下する
②ブラウザで「私のインテグレーション」画面が開いたら、「新しいインテグレーション」を押下する。
③「基本情報」画面が開いたら、「関連ワークスペース」を選択、「名前」を入力し、「送信」を押下する。
「関連ワークスペース」は、Aでデータベースを作成したワークスペースを選択する。
「名前」は、任意の名前でOK(ここでは爆速BrainDumpとした)。
④インテグレーションが作成できたら、「シークレット」が表示されるので、メモする
「表示」を押下すると「コピー」ボタンが出てくるので、「コピー」を押下することでクリップボードにシークレットをコピーすることができる。
C. コネクトの追加
①Aで作成したデータベースがあるページを開き、右上の「設定」→「接続先」を押下し、Bで作成したインテグレーションを選択する。
②許可ダイアログが出てきた場合は、「はい」を押下する。
動作確認
Notion API仕様
データベースにレコードを追加する際は、以下の仕様に則ってHTTPSリクエストする。
※データベースの各レコードは、Notionではページとして管理されている。
URL
エンドポイント:https://api.notion.com/v1/pages
メソッド:POST
Header
キー名 | 値 | 備考 |
---|---|---|
Accept | application/json | |
Notion-Version | 2022-06-28 | 公式リファレンスに記載されている最新のVersionを指定 |
Authorization | Bearer ${secret} | Bで取得したシークレットを${secret} に入力 |
Body
{
"parent": {
"type": "database_id",
"database_id": "${database_id}" // ${database_id}: Aで取得したデータベースIDを設定する
},
"properties": {
"Title": {
"title": [
{
"text": {
"content": "${title}" // ${title}: 追加するレコードのTitleを設定する
}
}
]
},
"URL": {
"url": "${url}" // ${url}: 追加するレコードのURLを設定する
},
"Date": {
"data": {
"start": "${date}" // ${date}: 追加するレコードのDataを設定する
}
}
}
}
テストデータをリクエストする
API仕様の各変数に以下の値を設定して、リクエストする。
変数名 | 値 |
---|---|
title | 'Qiita' |
url | 'https://qiita.com/' |
date | '2024-04-14' |
結果
リクエストした内容でデータベースにレコードが登録されていることを確認する。
参考
Notion公式リファレンス
インテグレーションの作成
データベースにレコードを追加
Bodyに設定するレコードのデータ構造