La Peregrinación 登録・QRパス発行の Google Apps Script 自動化

Tool

概要

本リポジトリは、メキシコの Cerro del Cubilete で行われる「La Peregrinación Nacional Juvenil」向けに作られた、登録管理とQR付きパス発行を自動化する Google Apps Script プロジェクトです。Google フォームやスプレッドシートと連携して参加者データを受け取り、各参加者ごとにユニークなQRコードを生成して通行証を作成、メールで自動送信します。スクリプトは比較的シンプルな構成(main.gs)で、イベント運営に必要な一連の業務(データ集計、パス生成、配布)をワンストップで実行できる点が特徴です。

GitHub

リポジトリの統計情報

  • スター数: 1
  • フォーク数: 0
  • ウォッチャー数: 1
  • コミット数: 2
  • ファイル数: 2
  • メインの言語: JavaScript

主な特徴

  • Google Sheets と連携した登録データの自動処理(フォーム入力 → スプレッドシート)
  • ユニークなQRコードを生成して参加者用パスを作成(QRは画像化して添付)
  • メール(Gmail/MailApp)によるパスの自動送付
  • トリガー(onFormSubmit や時間トリガー)による自動実行

技術的なポイント

このプロジェクトは Google Apps Script(.gs ファイル)で完結する軽量自動化ソリューションです。主な技術要素は次の通りです。

  • データ層: Google スプレッドシートを単一のデータストアとして使用。フォームからの入力をそのまま行に追記し、処理済みフラグやユニークIDを列で管理する運用が一般的です。スプレッドシート操作は SpreadsheetApp を用いて行われます。
  • トリガーとワークフロー: フォーム送信時の自動処理(onFormSubmitトリガー)を設定すると、入力が発生するたびにスクリプトが呼び出され、QR生成→パス生成→メール送信までの流れを自動化できます。バッチ実行やリトライのために時間主導トリガーを組み合わせることも可能です。
  • QRコード生成: 簡易な方法として Google Chart API(https://chart.googleapis.com/chart)を UrlFetchApp で呼び出して QR 画像(PNG)を取得し、Blob として扱う手法が使えます。取得した画像は Drive に保存するか、直接メール添付(Blob)として送信します。
  • パス(PDF/画像)生成: HTML テンプレート(HtmlService)で通行証の見た目を作成し、HTML を PDF 化して Drive に保存・添付する方法が一般的です。DriveApp や Utilities、MimeType を組み合わせることで、PDF 化やバイナリ変換が可能です。
  • メール送信: MailApp や GmailApp を利用して、テンプレート化した本文と添付ファイル(QR または PDF)を送付します。送信元や件名、本文はテンプレート変数で差し込みができ、運営名やイベント情報を一括で差し込めます。
  • 運用面の配慮: 日次のメール送信数や UrlFetchApp の呼び出し回数など、GAS のクォータ制限に注意が必要です。重複送信防止のために処理済みフラグをスプレッドシートに付与したり、CacheService や PropertiesService で処理状況を保持すると堅牢になります。エラーハンドリングは Logger.log や Stackdriver(現在の Cloud Logging)へ投げることでトラブルシューティングが容易になります。
  • 開発・デプロイ: 小規模ならコンテナバウンド(スプレッドシートに紐づくスクリプト)で十分。コード管理やローカル開発を行う場合は clasp を導入して GitHub と連携すると良いです。必要な OAuth スコープ(スプレッドシート、ドライブ、メール、UrlFetch など)を事前に確認しておきます。

拡張案としては、QR 画像のキャッシュ&共有リンク管理(Drive のフォルダに保存して URL を再利用)、外部 QR API の利用(カスタムデザインや高品質化)、ワークフローを Cloud Functions + Pub/Sub に切り出してスケーラビリティを確保する方法などがあります。運用時は個人アカウントによる送信上限に留意し、必要なら Google Workspace の専用サービスアカウントや管理者権限のあるアカウントで運用することを検討してください。

プロジェクトの構成

主要なファイルとディレクトリ:

  • README.md: file
  • main.gs: file

まとめ

Google Apps Script を使った実用的でシンプルなイベント登録→QRパス発行の自動化テンプレートです。

リポジトリ情報:

READMEの抜粋:

Automatizacion-google-apps-script

Sistema autónomo para la gestión de registros de La Peregrinación Nacional Juvenil al Cerro del Cubilete, generación de pases con QR y envío de correos. …