添付ファイル対応のGoogleフォームがGoogleアカウント不要で使えるシステムの話
はじめに
今回のブログで紹介するシステムは、Jagu’e’rのGWS分科会で開催されたGoogle Workspace事例コンテスト2024で優秀賞を受賞しました!
上記について詳しく記載した記事はこちら。
システム開発の前提
このシステムは制作局のデスク(人や機材のスケジュールをくむ担当者)からの相談がきっかけで開発しました。相談内容は「ロケの発注を楽にしたい」というものでした。
制作局の仕事の中には、番組制作には欠かせない「ロケ」の仕事があります。この仕事では、制作陣やカメラマンなどの技術陣、そしてタレントさんやアナウンサーを連れて社外で活動を行うことも多々あります。
そんなロケの日程や機材トラフィックなどの調整を制作局のデスクが行なっています。以前のロケ発注の流れは、各番組の担当ADなどが、デスクにメールや電話で連絡を取り、デスクが共通のGoogleカレンダーに予定を書き込むということを行なっていました。番組単位やコーナー単位でのロケ発注。天候の影響やタレントさんの用事等で予定変更になることも多々あり、この方法はとても煩雑で大変でした。
そこで、初めはGoogleフォームとGoogle Apps Script(以下、GAS)を用いたシステムを考えていました。
しかし、上記の方法はGoogleフォームの添付ファイルの仕様問題で断念しました。
Googleフォームの添付ファイルの仕様問題
ロケ発注する際に、デスクは「台本」をメール等で受け取っていました。
それを今回、フォーム化するということで、Googleフォームの添付ファイルの機能を用いてこれを実現しようとしました。
しかし、添付ファイル機能をONにするとGoogleフォームに回答するには、Googleアカウントが必須 になります。
画像は、シークレットモードで添付ファイルがないGoogleフォームと、添付ファイル付きのGoogleフォームを開いたものです。これを見てもわかるように、添付ファイル付きのGoogleフォームのみGoogleアカウントへのログインが求められています。
ロケの仕事は、制作会社やフリーランスのスタッフ、そしてMBS社員以外の多くの協力者によって成り立っています。これらスタッフの特徴としてMBSのGoogle Workspace(以下、GWS)アカウントを所有していないというものがあります。
Googleアカウントは無料で作成できますが、アカウントを持っていない人にその作成を強要することはできません。このような理由で、GoogleフォームとGASを使ったシンプルなシステム開発は断念することにしました。
システム構成
上記の問題を解決するために、以下のようなシステムを考えました。
このシステム構成の肝は、
1. 静的サイトとGoogleフォームを連携させる
2. 添付ファイルをBoxで対応する
の2点です。
それぞれ詳しく説明していきます。
1. 静的サイトとGoogleフォームを連携させる
先述しましたが、Googleフォームで添付ファイルの質問項目を設けると、Googleアカウントのログインは必須になります。
ここで考えられるのが、添付ファイル以外の質問はGoogleフォームで収集して、添付ファイルは 他のシステムで収集するという仕組みですが、1つのロケ申請のために、ユーザー(申請者)を2つのシステム間で行き来させるのは煩雑です。そこで、添付ファイルも含めたフォームの静的サイトを作成します(以下わかりやすく申請フォームと記述)。
ここでいう連携とは、申請フォームで送信ボタンを押した際、任意の質問がGoogleフォームにPOSTされるという意味です。これで、添付ファイル以外の項目はシステム構築できました。
図解を以下に貼ります。
申請フォームとGoogleフォームの連携はこちらの記事を参考にさせていただきました(2024.08.15 現在)。
このようにすることで、図解にもありますがGASもGoogleフォームおよびスプレッドシートから作成でき、GoogleカレンダーなどGWSに連携したシステムの構築を簡単に行うことができます。
2.添付ファイルをBoxで対応する
添付ファイルは、クラウドストレージサービスのBoxを使用して受け付けます。
この仕組みも非常に簡単で、「添付ファイルの有無」という質問項目を設けます。もし上記の質問に対して「有」を答えた場合は、申請フォームで送信ボタンを押すと、Googleフォームに内容をPOSTすると同時に、Boxの特定のディレクトリにファイルをアップロードできるページに遷移するようにします。
このようにすることで、添付ファイルの項目もユーザー(申請者)からすると、同一のフォームでファイルも添付できることになります。
また、Boxで集めた添付ファイルは「コンテンツエクスプローラー」というサービスを用いると、Boxに保存されているコンテンツのフォルダビューをデスクトップまたはモバイルウェブアプリに埋め込むことができます。
コンテンツエクスプローラーは公式ドキュメントがあるので詳細はこちらをご確認ください。
この機能を使い、添付ファイルが「有」と回答した際には、GASのプログラムで管理者にBoxコンテンツエクスプローラーを埋め込んだウェブサイトのリンクを送信します(今回はGoogleカレンダーのメモに記載)。
こちらも図解を以下に示します。
申請フォームはGAEでホスティング
システムのアーキテクチャーの中にも記載していますが、申請フォームやコンテンツエクスプローラーを埋め込んだWebサイトはGoogle App Engine(以下GAE)でホスティングしました。
GAEでホスティングするとIPアドレス制限やアイデンティティ認識型プロキシ、Identity-Aware Proxy(以下IAP制限)が簡単に実行できます。
ロケの日程や内容、まだ放送していない番組の台本などは多くの人にアクセスして良いものではありません。
そこで、IAP制限を使用し特定の人、つまり特定のGoogleアカウントのみが静的サイトを確認できるような仕組みにしています。
GAEはセキュリティ強化という面で見てもとても魅力的です!
おわりに
システムの運用費用は、1ヶ月あたりわずか1桁円で済んでいます。この安さもGAEの魅力だと思いますし、このシステムが稼働しているおかげでロケ発注の仕事に関してはデスクの仕事量を半減する以上の効果がありました。
今回のシステム構築は、特段難易度が高い項目はないと思っています。しかし少しの工夫でこのようなシステムを構築・運用することができています。以上のことからどのような問題があって、それにどのように対応していくか。いかにワークフローを理解して、システムに落とし込むかの開発とレビューをくり返し行ったことが当システムが成功した最大の理由だと思っています。
この記事の最初でも触れたように当システムが対外的に評価していただけたこと非常に嬉しいです!今後も研鑽を積んでいきます。