Google Formでイベントの参加者管理をするためのスクリプトを書いた

· 1135 words · 3 minute read

はじめに

こんな感じのGoogle Formから参加希望者がメールとIDを回答すると、コミュニティスタッフのSlackチャンネルに通知するというスクリプトを書きました。

google form

コードはこちらのgistにあります。

なぜつくったのか

わたしはWomen Who Go Tokyoと言うコミュニティのスタッフをしています。
Women Who GO Tokyoは、Goに興味がある女性とジェンダーマイノリティのコミュニティです。

毎月ハンズオンイベントを開催しており、イベントはconnpassを使って管理しています。

わたしたちのコミュニティには様々な人がおられるので、中にはconnpassのアカウントを使わずにイベント参加したいという方もいらっしゃいます。

connpassのアカウントを持っていない方であればわたしたちでレクチャーすることもできますが、理由があってアカウントとイベントを紐づけたくないという方もおられるので、 そのような方向けにGoogle Formからイベントの参加登録ができるようにしました。

スクリプトの内容

最初はGoogle Formから直接入力内容を取得しようと考えていましたが、どうもAPIの仕様に変更があったようでうまくいかなかったため、回答集計のSpread Sheetから値を取得する形にしました。

Spread Sheetから値を取ってくる処理はこの辺です。

  var sheet = SpreadsheetApp.getActiveSheet();
  var lastRow = sheet.getLastRow();
  var lastCell = sheet.getRange(lastRow, 3)   // C列
  var emailCell = sheet.getRange(lastRow, 2)  // B列

Slackへの通知は、Incoming webhookを利用しました。

「Manage team members」 → 「Home」 → 「Incoming WebHooks」 → 「Add Configuration」からwebhookを新規登録し、Webhook URLを取得します。

ここのurlに取得したwebhook urlを入れてあげればOK。

UrlFetchApp.fetch(url, params);

終わりに

google form

GASを書くのは約1年ぶり、2回目でした。

実は1年前に書いたのも同じくWomen Who Goに関するもので、イベント参加者が増えてきたため、Slackへの招待を自動化しようと考えて書いたものです。
当時はデバッグもエラーの処理もよくわからず、チームメイトに聞いてなんとか完成したものでした。

今回自力で書いてみて、改めてエンジニアとしての自分の成長を感じました。

具体的には、何がしたいのか明らかにして仕様を決めること、デバッグ処理を書くこと、有用そうな記事のググり方、APIドキュメントの利用法など、コードを書くときの基本的な力が仕事で鍛えられたと思っています。

これからも身近な課題を解決する便利ツールをコツコツ作っていきたいです。


SLack botのアイコンとして利用しているGopherくんの画像は@tenntennさんの作品です。

Gopher Stickers
The Go gopher was designed by Renee French. (http://reneefrench.blogspot.com/) The gopher stickers was made by Takuya Ueda (https://twitter.com/tenntenn). Licensed under the Creative Commons 3.0 Attributions license.