4️⃣

S19. Notion API アクセスのための関数作成

19.1 スクリプトプロパティ関連

// スクリプトプロパティを取得 function scriptPropertyFor(key) { return PropertiesService.getScriptProperties().getProperty(key) }
スクリプトプロパティ取得関数
// NOTION_API_KEY を取得 function notionAPIKey() { return scriptPropertyFor("NOTION_API_KEY") } // NOTION_VERSION を取得 function notionVersion() { return scriptPropertyFor("NOTION_VERSION") } // DATABASE_ID を取得 function databaseID() { return scriptPropertyFor("DATABASE_ID") }
特定スクリプトプロパティ取得関数
// スクリプトプロパティにデータを保存 function saveScriptPropertyTo(key, value) { PropertiesService.getScriptProperties().setProperty(key, value) }
スクリプトプロパティ設定関数

19.2 スプレッドシート関連

// 現在のアクティブシートを得る function getSheet() { return SpreadsheetApp.getActiveSheet() }
現在のアクティブシートを得る

19.3 API 呼び出し関連

// Notion に payload を send する function sendNotion(url_sub, payload, method) { const options = { "method": method, "headers": { "Content-type": "application/json", "Authorization": "Bearer " + notionAPIKey(), "Notion-Version": notionVersion(), }, "payload": payload ? JSON.stringify(payload) : null }; // デバッグ時にはコメントを外す // console.log(options) Utilities.sleep(400) const url = "https://api.notion.com/v1/" + url_sub return JSON.parse(UrlFetchApp.fetch(url, options)) }
Notionに payload を送信する
// Create Page API を呼び出す function createPage(payload) { return sendNotion("pages", payload, "POST") }
Create page API を呼び出す
// Update Page API を呼び出す function updatePage(page_id, payload) { return sendNotion("pages/" + page_id, payload, "PATCH") }
Update page API を呼び出す