みやもとメモ

「Notion」「Google Apps Script」「ブログカスタマイズ」などについて書いていきます。

目次
目次

GASでNotion APIを使う準備(インテグレーション、コネクト、Notion接続テスト)

この記事をシェアする

今回はGAS(Google Apps Script)に関して書いていきます。

以前もGASに関する記事を書いています(以下リンク)。

miya-moto-memo.hatenablog.com

上記の記事の中から「GASでNotionからデータを取得する事前準備」の手順を抜粋して記事にしてみます。

というのも、今後もGASでNotion連携する記事を書いていく予定で、その事前準備の手順を毎回書くのもアレなので、その部分だけ独立した記事を書いておこうかなと。

それでは本題へ。

前提情報

Notionとは?

Notionとはアメリカ・サンフランシスコを拠点とするスタートアップ企業Notion Labsが開発した多機能ドキュメントツールです。プロジェクト管理やスケジュール管理、社内wikiなど目的に応じて使い分けられるさまざまなドキュメントを集約できるため「オール・イン・ワンツール」と呼ばれています。

出典:【万能アプリ】Notionとは?何がスゴイ?使い方や活用事例、料金などについてわかりやすく解説 - 2023/12/08 [Schoo]

詳しくは以下のサイトを見て頂ければと。
schoo.jpwww.sbbit.jp

Notion APIとは?

Notion API は Notion と外部のツール(GoogleMicrosoft 、Slack、LINE、ChatGPT など)を繋げてデータの受け渡しをしたり、Notion 内のワークフローを自動化することができるインターフェースです。API は、アプリケーション・プログラミング・インタフェース (Application Programming Interface)の略語です。

インターフェースと聞くと難しく感じますが、パソコンとマウスを繋ぐ USB もインターフェースの一種で、簡単に言うと「何か」と「何か」を「繋ぐもの」です。Notion API の場合は「Notion」と「外部の Web サービスやツール」を繋ぐインターフェースです。

ちなみに Notion API は無料で使用することができます。

出典:Notion APIとは?できることや使い方を解説 | TEMPブログ

詳しくは以下のサイトを見て頂ければと。
notion-lab.jpn-v-l.cobiz-notion.northsand.co.jp

Notion APIを使う準備

GASでNotionからデータを取得するためには、事前準備が必要です。
今回の例では、GASでラジオ管理Notionからデータ取得できるようにします。
※Notionアカウントを持っている前提です。

インテグレーション作成

インテグレーションを作成します。
ここで作成したAPIキーをプログラムに記述します。


STEP
インテグレーション管理ページを表示し、「新しいインテグレーション」をクリック
STEP
名前を入力し、「送信」をクリック
※名前はお好みで
STEP
これでインテグレーションの作成が完了です
※「表示」→「コピー」でシークレットキーをコピーできます

コネクト

先ほど作成したインテグレーションと、GASからデータ取得したいNotionデータベースを紐づけます。


STEP
対象のNotionデータベースを開く
※今回はラジオ管理Notion
STEP
Notionデータベースのページで、先ほど作成したインテグレーションをコネクト
※「…」→「接続先」→「ラジオ管理Notion」
STEP
「はい」をクリック
STEP
以下の状態になっていればOK

データベースIDを控える

NotionデータベースのIDを控えておきます。
ここで控えたデータベースIDをプログラムに記述します。

データベースIDを控えておく

サンプルURL
上記の「xxxxxxxxxx」がデータベースIDです。
※「yyyyyyyyyy」はビューID

スクリプト プロパティ設定

スクリプト プロパティを設定します。
先ほど控えた「インテグレーションキー」や「データベースID」を登録します。

この作業は必須ではないですが、やっておいた方がセキュリティ面で安全かなと思います。


STEP
「プロジェクトの設定」をクリック(歯車マーク)
STEP
ページの下の方にある「スクリプト プロパティを追加」をクリック

STEP
プロパティを設定し、「スクリプト プロパティを保存」をクリック

今回は以下2つを登録しています。

プロパティ 説明
NOTION_API_KEY 先ほど作成したインテグレーション
DATABASE_ID 先ほど控えたNotionデータベースID

スクリプト プロパティ」に関しては別記事を書いています。
こちらも良ければぜひ。
miya-moto-memo.hatenablog.com

プログラム

準備が整ったところで、プログラムです。
Notionからデータが取得できるか、接続テストをしてみます。

// Notionインテグレーションキー
const NOTION_API_KEY = PropertiesService.getScriptProperties().getProperty('NOTION_API_KEY');
// ラジオ管理NotionのデータベースID
const DATABASE_ID = PropertiesService.getScriptProperties().getProperty('DATABASE_ID');

/**
 * メイン処理
 */
function main() {
  // Notion検索URL
  const url = 'https://api.notion.com/v1/databases/' + DATABASE_ID + '/query';
  // データ取得に必要なパラメータを組み立てる
  const payload = {
    'filter': {
      'property': '曜日',
      'multi_select': {
        'contains': '月'
      }
    }
  };
  const params = {
    'method': 'POST',
    'headers': {
      'Notion-Version': '2022-06-28',
      'Authorization': 'Bearer ' + NOTION_API_KEY,
      'Content-Type': 'application/json'
    },
    'payload': JSON.stringify(payload),
  };
  // Notion検索実行
  const result = JSON.parse(UrlFetchApp.fetch(url, params));
  for (const data of result.results) {
    // 番組名を取得
    let title = data.properties['番組名'].title[0].plain_text;
    // ログ出力
    console.log(title);
  }
}

上記のプログラムを実行して、ラジオ管理Notionからデータ取得できました。

ラジオ管理Notionからデータ取得
ラジオ管理Notion

Notion検索時に「曜日=”月”」でフィルターするように設定しており、フィルターされたデータが取得できました。
取得したデータの中から「番組名(タイトルプロパティ)」をログ出力しています。

今回はNotionデータベースの接続テストなので、プログラムの詳しい説明は割愛します。

参考リンク

以下のサイトを参考にさせて頂きました。ありがとうございます。
※「前提情報」で貼ったリンクと同じです。

notion-lab.jp

おわりに

ということで、「GASでNotion APIを使う準備(インテグレーション、コネクト、Notion接続テスト)」に関してアレコレ書いてみました。

今後もGASでNotion連携する記事を書いていく予定なので、事前準備のフェーズは今回の記事をリンクしておけばOKになるかなと思っています。

GASでNotion連携する際の第一歩としても参考になるかなと思います。

この記事が参考になれば幸いです。

関連記事

GAS(Google Apps Script)に関してはいくつか記事にしています。
気になる記事があればぜひ。

GASの活用事例

TOPへ戻る HOMEへ