/atnd-automation

Automation script for attendance enquete on Google Spreadsheets

Primary LanguageTypeScript

予定調査自動化ツール

Google スプレッドシートで構築する予定調査の更新を自動化するツール

Features

日付ベースの行を自動更新 updateDateRows()

A 列に日付を含むシートについて、過去の日付の行を削除し、MAX_DAYS_LENGTH(コード内で定義する変数)日先までの行を追加する。

リマインダの送信 triggerScheduleReminder()

1 枚目のシートをoverviewとし、当日に活動予定があれば Slack の Webhook 経由でリマインドする。

  • ヘッダ行で活動の文字がある行を活動予定、それ以降の列を個人の予定列とする。
  • 1 列目を日付列とし、当日の日付がある行のうちもっとも上にあるものをピックアップする。
  • 活動予定行に記載があれば、個人の予定と合わせてリマインドする。

Webhook の URL、ユーザー名取得のためのBot User OAuth Tokenは Web アプリとしてデプロイすると設定が可能。

Usage

Google Apps Script 上で動作する。トランスパイルとデプロイに Node.js および@google/claspを使用する。

依存パッケージのインストール

yarn

Apps Script プロジェクトの準備

Apps Script プロジェクトを準備し、以下の内容の.clasp.jsonを作成してローカルのリポジトリを接続する。

{
  "scriptId": "YOUR_SCRIPT_ID",
  "rootDir": "src"
}

プロジェクト ID は以下の手順で確認できる。

  1. スプレッドシートの編集画面から ツール -> スクリプト エディタ と進み、Apps Script プロジェクトを開く。
  2. URL https://script.google.com/home/projects/[PROJECT_ID] よりプロジェクト ID を確認する。

コードのアップロード

clasp push

自動実行の設定

必要な機能の関数にトリガーを設定することで、時間ベースで自動的に実行させることができる。

Troubleshoot

ENOENT: no such file or directory, open '/home/nandenjin/.clasprc.json'

clasp へのログインができていない。clasp loginでログイン操作をする。