見出し画像

NotionAPI企画第2弾!!今度はスプレッドシートの内容をNotionのDBに入れてみた

はじめに

当ブログではNotionの記事を多く執筆しておりますが、その中で前回『API初心者入門向け!GASを使ってスプレッドシートにNotionDBの内容を書き込んでみた(GAS使用)』という記事を執筆させていただきました。その記事では、Notion上からスプレッドシートに書き込むという内容で、Notionからデータを出力する一方通行でした。しかし、記事を読んでいる方の中には、逆にNotionにデータを入れたいと考えている方もいらっしゃるかと思います。そんな方のために、今回はNotionにスプレッドシートからデータを自動取り込む方法を紹介していきたいと思います。
前回の記事は下記URLにて読めますので、どうぞご覧ください。

プログラムコード(GAS)

前回の記事でGASの詳細な使い方やNotionのAPIコードの発行の仕方を説明したため、今回の記事ではそこまで詳しくは紹介しません、そこから知りたい方は記事上部にありますURLより、過去の記事をご覧ください。

function addToNotionDatabase() {

  var notionIntegrationToken = 'NotionAPIトークン';//独自のものに変更
  var notionDatabaseId = 'NotionDatabaseID';//独自のものに変更
  var notionEndpoint = '<https://api.notion.com/v1/pages>';

  const sheetId = 'スプレッドシートID'; // スプレッドシートのIDを設定
  const sheet = SpreadsheetApp.openById(sheetId);
  const dataSheet = sheet.getSheetByName('database'); // シート名を設定
  const data = dataSheet.getDataRange().getValues();

  console.log(data);

  for (var i = 0; i < data.length; i++) {
    var title = data[i][0];
    var textContent = data[i][1];
    var dateContent = data[i][2];
    var textContent2 = data[i][3];

    var requestData = {
      method: "post",
      headers: {
        "Authorization": "Bearer " + notionIntegrationToken,
        "Content-Type": "application/json",
        "Notion-Version": "2021-05-13"
      },
      payload: JSON.stringify({
        parent: { database_id: notionDatabaseId },
        properties: {
          "見出し": [{ "text": { "content": title } }],
          "テキスト1": [{ "text": { "content": textContent } }],
          "日付": { "start": dateContent },
          "テキスト2": [{ "text": { "content": textContent2 } }]
  

        } 
      })
    };
  }

  var response = UrlFetchApp.fetch(notionEndpoint, requestData);
  Logger.log(response.getContentText());
}

今回のコードでは、関数を1つしか定義していないため、実行するときは唯一の関数である『addToNotionDatabase』を呼べば実行できます。
NotionAPIトークンの発行の仕方や、スプレッドシートのIDの確認方法等は過去の記事をご覧ください。

用意するスプレッドシート

今回用意するスプレッドシートは以下になります。

今回はA列とD列が”text”のプロパティに挿入する想定、見出しは”title”、日付は”date”プロパティに挿入する想定でスプレッドシートを作っています。初心者の方は全く同じものを作成して、まずはしっかり動くかどうかを確認するとよいと思います。

用意するNotionDB

今回用意するNotionDBは以下になります。

スプレッドシートに合わせた形になっています。見出し、テキスト1と2はテキストプロパティ、日付はdateプロパティになっています。

実行手順

実施手順は以下になります。詳しい実行方法は過去の記事に書いてありますので、そちらをご覧ください。
①ExcelとNotionのスプレッドシートの準備をする※過去記事参照
②記事上部のコードを張り付けて保存する※過去記事参照
③関数『addToNotionDatabase』を実行する※過去記事参照
④エラーが出ていないこと、Notionにスプレッドシートの内容が書き込まれていることを確認する
上手く実行されると、リアルタイムでNotionDBの方にレコードが追加されますので、追加されていたら成功になります。

まとめ

Notionにスプレッドシートの内容を連携させる基本的な方法は以上になります。このソースコードを基本として、自分のDBに合わせた形にすると連携の幅も広がります。
1つ前の記事で紹介した方法を合わせて、スプレッドシートを使った連携を上手く使えるようになると以下の図のような形でたシステム、他サービスとの連携も可能になります。

お知らせ

電巧社ではセキュリティ分野専門のブログも公開しています。ゼロトラストセキュリティを始めとした、ランサムウェアへの対処法等を紹介しています。こちらもよろしくお願いします。