技術ブログ

GASでNotionデータベースを自在に操る!基本から応用まで

/ 初心者向け

GASでNotionデータベースを自在に操る!基本から応用まで

GASでNotionデータベースを自在に操る!基本から応用まで

皆さん、こんにちは!GAS専門ブロガーの[あなたの名前]です。

今回は、多くの人が活用している情報管理ツール「Notion」と、Googleの自動化ツール「Google Apps Script (GAS)」を連携させ、Notionデータベースを自動で操作する方法について、初心者の方にも分かりやすく解説していきます。

Notionのデータベースは、タスク管理、プロジェクト管理、顧客リストなど、様々な用途で活用できます。GASを使えば、これらのデータベースをExcelのように扱ったり、他のGoogleサービス(スプレッドシート、Gmailなど)と連携させたりと、可能性は無限大です。

なぜGASでNotionデータベースを操作するのか?

GASとNotionを連携させることで、以下のようなメリットがあります。

  • 業務効率化: 定型的なデータ入力や更新作業を自動化し、時間を節約できます。
  • データ連携: Notionのデータをスプレッドシートに自動で出力したり、Gmailで通知を送ったりできます。
  • カスタマイズ性: Notionの標準機能だけでは実現できない、独自のワークフローを構築できます。

Notion APIの基本

GASからNotionデータベースを操作するには、NotionのAPIを利用します。API(Application Programming Interface)とは、異なるソフトウェア間で情報をやり取りするための「窓口」のようなものです。

Notion APIを利用するためには、いくつかの準備が必要です。

1. Notion Integration Tokenの取得: Notionの設定画面からAPIキー(Integration Token)を取得します。これは、GASがNotionにアクセスするための「鍵」になります。

2. データベースIDの取得: 操作したいNotionデータベースのIDをURLから取得します。

これらの準備ができたら、GASでAPIリクエストを送信することで、Notionデータベースの操作が可能になります。

データの取得 (GETリクエスト)

まずは、Notionデータベースからデータを取得する方法を見ていきましょう。

function getNotionDatabase() {
  const NOTION_API_KEY = 'YOUR_NOTION_API_KEY'; // 取得したAPIキーを貼り付け
  const DATABASE_ID = 'YOUR_DATABASE_ID'; // 操作したいデータベースIDを貼り付け
  const url = `https://api.notion.com/v1/databases/${DATABASE_ID}/query`;

  const options = {
    'method' : 'post',
    'headers' : {
      'Authorization' : 'Bearer ' + NOTION_API_KEY,
      'Content-Type' : 'application/json',
      'Notion-Version' : '2022-06-28' // Notion APIのバージョンを指定
    }
  };

  const response = UrlFetchApp.fetch(url, options);
  const data = JSON.parse(response.getContentText());

  Logger.log(data);
}

このコードを実行すると、指定したデータベースの全レコードが取得され、GASのログに出力されます。dataオブジェクトには、Notionデータベースの各カラムの値が含まれています。

データの追加 (POSTリクエスト)

次に、新しいレコードをデータベースに追加する方法です。

function addNotionRecord() {
  const NOTION_API_KEY = 'YOUR_NOTION_API_KEY';
  const DATABASE_ID = 'YOUR_DATABASE_ID';
  const url = `https://api.notion.com/v1/pages`;

  const payload = {
    'parent': {
      'database_id': DATABASE_ID
    },
    'properties': {
      'Name': {
        'title': [
          {
            'text': {
              'content': '新しいタスク'
            }
          }
        ]
      },
      'ステータス': {
        'select': {
          'name': '未着手'
        }
      }
    }
  };

  const options = {
    'method' : 'post',
    'headers' : {
      'Authorization' : 'Bearer ' + NOTION_API_KEY,
      'Content-Type' : 'application/json',
      'Notion-Version' : '2022-06-28'
    },
    'payload' : JSON.stringify(payload)
  };

  const response = UrlFetchApp.fetch(url, options);
  const data = JSON.parse(response.getContentText());

  Logger.log(data);
}

payloadオブジェクトで、追加したいレコードの情報を指定します。propertiesの部分は、Notionデータベースのカラム名と、その値の形式に合わせて調整してください。

データの更新 (PATCHリクエスト)

既存のレコードを更新するには、PATCHリクエストを使用します。更新するには、対象となるレコードのページIDが必要です。

データの削除 (DELETEリクエスト)

レコードを削除するには、DELETEリクエストを使用します。こちらもページIDが必要です。

まとめ

今回は、GASを使ってNotionデータベースを操作する基本的な方法について解説しました。データの取得、追加、更新、削除といった基本的な操作をマスターすれば、NotionとGASを連携させた様々な自動化ワークフローを構築できます。

次回は、より実践的な応用例として、スプレッドシートとの連携や、条件に基づいたデータ操作などを紹介する予定です。ぜひ、NotionとGASの可能性を広げていきましょう!

ご質問やご要望があれば、コメント欄でお気軽にお寄せください。

それでは、また次回のブログでお会いしましょう!

GAS自動化の導入相談

請求書PDF作成、Gmail自動送信、Slack通知、スプレッドシート連携などを業務に合わせて実装できます。

請求書自動生成ツールを見る / SNS自動投稿ツールを見る