Notion API の認証方式と選択基準
1.主要な認証オプションの比較
| 項目 | OAuth 2.0(ユーザー認可) | Internal Integration Token(内部統合トークン) |
|---|---|---|
| 発行元 | Notion の OAuth 認可サーバ | Notion の My integrations ページ |
| 有効期限 | デフォルトで 1 hour、リフレッシュトークンで自動更新 (公式ドキュメント) |
現在は 無期限(将来的に変更される可能性あり) |
| 権限管理 | スコープ(read, write, update など)をユーザー単位で指定可能 ※スコープ細分化は公式ドキュメント参照【1】 |
統合単位の Scoped Access が利用でき、データベースやページごとに最小権限を付与可能(2023 年に正式リリース)【2】 |
| 設定コスト | ・クライアント ID / シークレット取得 ・リダイレクト URL の設定 ・認可コードフロー実装が必要 |
ワンクリックでトークン取得 → Zapier 等のノーコードツールに貼り付けるだけ |
| 推奨シーン | ・外部ユーザーや顧客が自分の Notion アカウントで操作する場合 ・SSO や組織単位の認可ポリシーが必要な SaaS 連携 |
・社内ツール・バッチ処理・Zapier などノーコード自動化 ・固定的に同一権限で API を呼び出すユースケース |
結論
- 外部ユーザーとの連携が前提 → OAuth 2.0 が必須。
- 社内だけで完結する自動化 → Internal Integration Token がシンプルかつ高速に導入可能。
2.Scoped Access(スコープ細分化)について
Notion は 2023 年に Scoped Access を正式リリースし、内部統合トークンでもデータベース単位・ページ単位で権限を絞り込めるようになりました【2】。この機能は公式ドキュメントに記載されており、2025 年に新たに追加されたという情報は確認できませんでした。そのため、本稿では 「現在提供されている Scoped Access」 に限定して解説します。
2‑1.Scoped Access の有効化手順(公式 UI)
| 手順 | 操作内容 | 補足 |
|---|---|---|
| 1 | Notion の開発者コンソール https://www.notion.so/my-integrations にアクセス | 「New integration」から統合を作成 |
| 2 | 統合作成画面下部の Advanced permissions → Enable scoped access をオンにする | 初回のみ有効化が必要 |
| 3 | 権限を付与したい データベース または ページ を選択し、read, write, update のチェックボックスで細分化 |
UI は「Permissions」タブに表示 |
【参考】Notion Developers – Scoped Access
https://developers.notion.com/reference/authorization#scoped-access
2‑2.実際の API 呼び出し例(Node.js)
|
1 2 3 4 5 6 7 8 9 10 11 12 |
const { Client } = require("@notionhq/client"); // scoped token (secret_…) const notion = new Client({ auth: process.env.NOTION_TOKEN }); (async () => { const response = await notion.databases.query({ database_id: "YOUR_DATABASE_ID", // 権限が付与された DB のみアクセス可 }); console.log(response.results); })(); |
トークンに databases:read スコープだけが付与されていれば、書き込み系エンドポイントは 403 エラーになります。
3.Zapier と Notion を組み合わせた実装フロー
3‑1.Zapier 側で Notion アプリを登録する手順
| 手順 | 操作内容 |
|---|---|
| 1 | Zapier ダッシュボード https://zapier.com/app/dashboard にログイン |
| 2 | My Apps → Add new connection → 「Notion」を選択 |
| 3 | 認証画面で “Use an API token” を選び、次へ |
| 4 | Notion の開発者コンソールで取得した Internal Integration Token(secret_ で始まる)を貼り付け → Yes, Continue |
【公式リンク】Zapier – Notion integration page
https://zapier.com/apps/notion/integrations
3‑2.代表的な自動化ワークフロー(2024‑2025 年版)
(a) Gmail のタスクメール → Notion データベースに自動追加
| Zap 構成要素 | 設定ポイント |
|---|---|
| Trigger | Gmail – New Email Matching Search 検索例: subject:"To‑Do" または label:tasks |
| Action | Notion – Create Database Item ・データベース ID は Notion の URL から取得 ・メール件名 → 「タスク名」 ・本文 → 「詳細」 |
(b) Notion ページのステータス変更 → Slack 通知
| Zap 構成要素 | 設定ポイント |
|---|---|
| Trigger | Notion – Updated Page Property 対象プロパティ: Status |
| Action | Slack – Send Channel Message メッセージ例: タスク『{{Page Title}}』が {{Property Value}} に変更されました。 |
(c) 新規ビュー切替 → Google スプレッドシートへ集計
| Trigger | Notion – Database View Changed |
| Action | Google Sheets – Append Row |
| メモ | ビュー名(例:Today)が選択されたときだけレポート行を追加 |
これらのトリガーはすべて Zapier の公式 Notion アプリページで確認できます【3】。
4.ベストプラクティス & 障害対処
4‑1.権限最小化と定期的なトークン管理
| 項目 | 推奨内容 |
|---|---|
| Scoped Access | 必要最低限の read/write スコープだけを付与し、不要なページは Share 設定で除外 |
| トークンローテーション | 現在は無期限だが、セキュリティポリシー上 6 か月ごとに再発行し Zapier の接続を更新する |
| 監査ログ取得 | Notion 管理コンソール → Settings & Members → Integrations → 対象統合の View activity で API 呼び出し履歴を確認(IP、エンドポイント、ステータス)【4】 |
4‑2.よくある障害と対処フロー
| 障害 | 主な原因 | 推奨対策 |
|---|---|---|
| 401 認証エラー | トークン削除・権限不足 | Notion の My integrations でトークン再取得、Scoped Access が正しく有効か確認 |
| 429 レートリミット | 短時間に多数呼び出し | Zapier の Delay ステップで 1 min 以上待機、もしくは Auto‑Replay を有効化 |
| データベース ID 不一致 | URL コピー時のハイフン抜けや余計なクエリ文字列 | Notion UI の Share → Copy link → https://www.notion.so/xxxx/yyyy? の yyyy 部分だけを使用 |
| プロパティ名変更 | Notion 側でフィールド名が変更された | Zapier のマッピング画面で最新のプロパティ名に更新、または Formula カラムでエイリアスを作成 |
4‑3.監査・インシデント対応手順(月次チェックリスト)
- Notion API ログ を確認し、権限外エンドポイントへのアクセスが無いか検証。
- Zapier Task History で失敗率が 1 % 超える Zap がないか抽出。
- 発見した問題は以下の順に対応:
① スコープ再確認 → ② トークンローテーション → ③ Zap のリトライ設定調整。
【参考】Notion – View activity (API logs) https://www.notion.so/settings/integrations
【参考】Zapier – Task History https://zapier.com/app/history
5.まとめ
| シナリオ | 推奨認証方式 | 主な根拠 |
|---|---|---|
| 社内だけのバッチ/自動化 | Internal Integration Token + Scoped Access | 設定が簡単で、最小権限を付与可能。トークンは現在無期限(将来変更の可能性あり) |
| 外部ユーザーや顧客向け SaaS 連携 | OAuth 2.0 | ユーザーごとの同意取得とスコープ管理が必須 |
| 長期運用・監査が必要な環境 | 両方式併用 + 定期的なトークンローテーション & ログレビュー | セキュリティと可観測性を両立 |
参考リンク(公式)
-
OAuth 2.0 認可フロー – Notion Developers
https://developers.notion.com/reference/authorization#oauth-20 -
Scoped Access (スコープ細分化) – Notion Developers
https://developers.notion.com/reference/authorization#scoped-access -
Zapier – Notion integration – Zapier 公式ページ
https://zapier.com/apps/notion/integrations -
Notion 管理コンソール – API ログ確認方法
https://www.notion.so/settings/integrations
本稿は執筆時点(2026‑04)における公式情報を基に作成しています。機能追加や仕様変更が行われた場合は、上記公式ドキュメントをご確認ください。