PublicになっているScrapboxを利用している場合は、RSS Feedを1日1回チェックして投稿するプログラム(lambdaでも、GASでも)を書いてハイ終了、です。
今回のケースでは、Scrapboxを業務利用していて、閲覧には認証が必要という状況。インターネット側からRSS Feedを取得することができない場合です。このケースでは、Slack連携(Scrapboxへの書き込み終了して90秒後に当該箇所の情報をSlackへPostする)は利用できるので、これとGASを組み合わせて解決することにしました。
以下に手順をまとめます。
Step.1 Slack連携のPostを受け取ってSpreadSheetに記録するGASを作る
Step.2 SpreadSheetの内容から前日分の情報を抽出してSlackへPostする
- SlackでWebhookのエンドポイント作成
- Step.1で作ったGASの左側の歯車メニュー「プロジェクトの設定」から「スクリプト プロパティ」に「SLACK_WEBHOOK_URL」として先程のエンドポイントを入力して保存
- 左側の時計メニュー「トリガー」から「トリガーを追加」
- 実行する関数は「postPagesEditedAtYesterday」、イベントのソースは「時間主導型」を選択して実行したいタイミングを指定して保存
これで完成。
こんな面倒なことをしなくても、RSS Feedが直接読める環境であればStep.2のトリガーによる定期実行のタイミングでFeedを取得して昨日更新分をまとめてPostすればいい。