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 を呼び出す