GASでNotionデータベースを操作!簡単連携ガイド
/ 初心者向け
GASでNotionデータベースを操作!簡単連携ガイド
普段の業務でNotionを使っている皆さん、こんにちは!Notionのデータベース機能は非常に強力ですが、Google Apps Script (GAS) と連携させることで、さらにその可能性は広がります。今回は、GASを使ってNotionデータベースを操作する方法を、初心者の方にも分かりやすく解説します。
なぜGASでNotionを操作するのか?
GASとNotionを連携させることで、以下のようなことが可能になります。
- 自動化: 特定の条件でNotionデータベースのレコードを追加・更新・削除する。
- データ連携: Googleフォームの回答をNotionデータベースに記録する、GASで集計したデータをNotionに反映させる。
- 通知: Notionデータベースの変更をSlackやメールに通知する。
- Webスクレイピング: Webから収集した情報をNotionデータベースに整理して保存する。
これらの自動化・連携により、日々のルーティンワークを効率化し、より創造的な業務に時間を割けるようになります。
Notion APIの基本
GASからNotionデータベースを操作するには、NotionのAPIを利用します。Notion APIは、HTTPリクエストを通じてNotionのデータにアクセスするためのインターフェースです。
1. 認証(Integration Tokenの発行)
APIを利用するためには、まず認証情報が必要です。Notionで「Integration」を作成し、APIキー(Integration Token)を取得します。
1. Notionの Settings & Members にアクセスします。
2. Integrations タブを選択します。
3. Develop your own integrations をクリックし、新しいIntegrationを作成します。
4. Integrationの名前、関連付けるWorkspaceを選択します。
5. Capabilities で、必要な権限(Read, Insert, Update, Deleteなど)を付与します。
6. 作成後、「Show API key」をクリックして、表示されるキーをコピーしておきます。これがIntegration Tokenです。
2. NotionデータベースのIDの取得
操作したいNotionデータベースのIDも必要です。データベースのページを開き、URLを確認します。
https://www.notion.so/<workspace>/<database_name>-<database_id>
このURLの末尾にある xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx の部分がデータベースIDです。
GASでNotionデータベースにデータを追加する
それでは、具体的なGASのコード例を見ていきましょう。
サンプルコード
以下のコードは、GASからNotionデータベースに新しいページ(レコード)を追加する例です。
function addRecordToNotion() {
// 1. 設定情報
const NOTION_API_KEY = 'YOUR_INTEGRATION_TOKEN'; // 取得したIntegration Tokenに置き換えてください
const DATABASE_ID = 'YOUR_DATABASE_ID'; // 操作したいデータベースIDに置き換えてください
const NOTION_API_URL = `https://api.notion.com/v1/pages`;
const NOTION_VERSION = '2022-06-28'; // APIバージョン
// 2. 追加したいデータ
const newPageData = {
'parent': {
'database_id': DATABASE_ID
},
'properties': {
'名前': {
'title': [
{
'type': 'text',
'text': {
'content': 'GASから追加したタスク'
}
}
]
},
'ステータス': {
'select': {
'name': '未着手'
}
},
'期日': {
'date': {
'start': '2023-10-27'
}
}
}
};
// 3. HTTPリクエストの設定
const options = {
'method': 'post',
'headers': {
'Authorization': 'Bearer ' + NOTION_API_KEY,
'Content-Type': 'application/json',
'Notion-Version': NOTION_VERSION
},
'payload': JSON.stringify(newPageData)
};
// 4. APIリクエストの実行
try {
const response = UrlFetchApp.fetch(NOTION_API_URL, options);
Logger.log('成功: ' + response.getContentText());
} catch (e) {
Logger.log('エラー: ' + e.toString());
}
}
コードの解説
1. 設定情報: APIキー、データベースID、APIエンドポイントURL、APIバージョンを設定します。
2. 追加したいデータ: properties オブジェクトに、Notionデータベースの各カラムに対応するデータをJSON形式で記述します。カラムのタイプ(title, select, dateなど)に合わせて構造が変わります。
3. HTTPリクエストの設定: method を post に、headers に認証情報とAPIバージョンを指定します。payload には、追加したいデータをJSON文字列に変換して格納します。
4. APIリクエストの実行: UrlFetchApp.fetch() を使ってAPIにリクエストを送信し、結果をログに出力します。エラーハンドリングも行っています。
事前準備
- Notionデータベースに「名前(Title型)」「ステータス(Select型)」「期日(Date型)」のカラムを作成しておいてください。
YOUR_INTEGRATION_TOKENとYOUR_DATABASE_IDを、ご自身の環境に合わせて必ず書き換えてください。- GASエディタで
UrlFetchAppサービスが有効になっていることを確認してください(通常はデフォルトで有効です)。
今後のステップ
今回の例ではデータの追加のみでしたが、Notion APIを使えば、データの取得(GET)、更新(PATCH)、削除(DELETE)も可能です。これらの操作を組み合わせることで、より複雑な自動化シナリオを実現できます。
- データ取得:
POST /v1/databases/{database_id}/queryエンドポイントを使用します。 - データ更新:
PATCH /v1/pages/{page_id}エンドポイントを使用します。 - データ削除:
DELETE /v1/pages/{page_id}エンドポイントを使用します。
GASとNotionの連携は、あなたの仕事の生産性を劇的に向上させる可能性を秘めています。ぜひ、このガイドを参考に、Notionデータベースの自動化に挑戦してみてください!
ご質問やさらに詳しい情報が必要な場合は、お気軽にお知らせください。
---
GAS自動化の導入相談
請求書PDF作成、Gmail自動送信、Slack通知、スプレッドシート連携などを業務に合わせて実装できます。