Site cover image

Site icon imagehtrkwn.dat

Just a htrkwn's personal hobby scrapbook.

⏲️astro-notion-blog+Google Apps Script(GAS)を使った定時デプロイ

このブログは現在astro-notion-blogを使用して作成しています。

で、記事を更新するたびに手動デプロイをかけるのも面倒くさいなあ……と思ったので、先人の知恵をお借りしてGoogle Apps Scriptを使って一時間ごとに更新をチェックして、更新がある場合には自動でデプロイフックを叩けるようにしました。

参考記事:

astro-notion-blog の記事更新をGASで反映させる - Ast-Rock Blog

ほぼ記事の手順通りに進めるのですが、コード中にトークン等の文字列を含めるのもなんだなと思ったので、GASではスクリプトプロパティを利用して書き換えます。

// Cloudflare デプロイURL
const deployUrl = PropertiesService.getScriptProperties().getProperty('DEPLOY_HOOK_URL');

// Notion API をセット
const databaseId = PropertiesService.getScriptProperties().getProperty('DATABASE_ID');
const token = PropertiesService.getScriptProperties().getProperty('NOTION_API_SECRET');

関数の外にプロパティを取得するPropertiesService.getScriptProperties()を書いても見やすいかな……。

const props = PropertiesService.getScriptProperties();

// Cloudflare デプロイURL
const deployUrl = props.getProperty('DEPLOY_HOOK_URL');

// Notion API をセット
const databaseId = props.getProperty('DATABASE_ID');
const token = props.getProperty('NOTION_API_SECRET');

もし実行時間制限(6分)を越えるようなことになったらまた考えます。