Googleフォームに回答したか否かをスプレッドシートで可視化できるようにしたもの。個人情報は載せず、名前と丸罰で印をつけます。
予め、名簿リスト(名前やIDもしくは学籍番号)を別のスプレッドシートで用意しておく必要があります。
フォームを送信した地点で、シートが自動更新されるようにしています。
- npmがインストールされているかのチェック。
npm run check
- claspと依存モジュールのインストール。
npm run install
- プロジェクトの作成。
clasp create --type standalone --rootDir ./dist --title "<作成するプロジェクト名>"
- ビルド&デプロイ
npm run deploy
- プロジェクトの実行画面を開く。
npm run open
- (必要な人向け):テスト実行。
npm run test
以上でエラーが出た場合は以下の詳細をご覧ください。
- 言語
- TypeScript(GAS)
- ツール
- webpack
- clasp
- Node.jsのインストール
- npmコマンド
- clasp
- (任意の)ブラウザ
- Googleアンケートとそのスプレッドシート
- スプレッドシート(氏名一覧を載せた名簿)
- スプレッドシート(公開用のシート)
GASのスクリプトページの、「ファイル」 > 「プロジェクトのプロパティ」
のプロパティ欄にスクリプトIDが記載されていると思います。
node -v
npm -v
上記のコマンドをターミナルに入力する。
- nodebrewで入れる方法
- ホームページから持ってくる。LTSを選択しよう。
その上で以下へ。
以下のコマンドを実行。
npm i @google/clasp -g # グローバルにclasp環境を整える。
npm i #ローカルに必要なNodeModuleをインストール。(-gというグローバルにインストールするオプションはclasp以外、使わないように。)
Webエディタにアップロードするためにユーザ認証が必要なので、
clasp login
を実行し、webページでログインを行う。
このページより、以下の通りにonにする。このとき、使用するアカウントでログインしていることを確認する。
clasp create --type standalone --rootDir ./dist --title "<プロジェクト名>"
オプションについてはこちらを参照。
オプションは付与しない又は順不同で構わないが、--rootDir
オプションだけは必ずつけること。
実行時以下のエラーが出た場合は、その設定を出来ていないためです。.clasp.json
のscriptIDの下に"rootDir": "./dist"
と記述しましょう。
npm run build
clasp push
上記のように実行すると、ビルド・ts→jsにトランスパイルされた後、webpack(1つのファイルに纏められ)され、クラウドにソースコードが転送される。
上記2行を以下の1行でかける。
npm run deploy
npm run test
clasp open
でクラウドに上げたソースコードをブラウザで確認できる。
ブラウザに遷移したら次のことを行う。 このプロジェクトでは以下の4つのプロパティを使用する。
- GF_URL
- Googleフォーム
- SS_FOR_EVERYONE_URL
- 公開用スプレッドシート
- SS_MENBERS_URL
- メンバーの情報を載せたスプレッドシート
- EVENT_TITLE
- 任意の行事
上記のプロパティを設定するために「ファイル」> 「プロジェクトのプロパティ」 > 「スクリプトのプロパティ」
を選択し、「行を追加」でプロパティを設定する。
ex) GF_URL : https://google.sample
実行できるが、プロジェクトを作成して初めて実行する場合は承認が必要である。
許可するとGoogleアカウントを選択する画面に遷移するので、clasp login
のときにログインした時のアカウントを選択する。
次に詳細を押し、「安全でないページ」へ遷移する。
また許可を求められるので「許可」を選択。
ようやく元の画面に戻るので、⌘R
で実行する。
GoogleがGASをローカルで開発できるように作成したライブラリです。
今回はそのライブラリのテンプレートを作成したgas-clasp-starterというものを活用しています。
参考記事: https://qiita.com/howdy39/items/0e799a9bfc1d3bccf6e5