コーディング レベル: 初級
所要時間: 15 分
プロジェクト タイプ: イベント ドリブン トリガーによる自動化
目標
- ソリューションの機能を理解します。
- ソリューション内で Apps Script サービスが何を行うかを理解します。
- スクリプトを設定します。
- スクリプトを実行します。
このソリューションについて
Google ドキュメントで議事録ドキュメントを自動的に作成し、Google カレンダーの会議に添付します。
仕組み
このスクリプトは、議題のドキュメント テンプレートを作成します。カレンダーを更新すると、スクリプトは、所有しているイベントの説明に「#agenda」が含まれているかどうかを確認します。タグが存在する場合、スクリプトはテンプレートのコピーを作成し、カレンダーの予定に追加して、予定の参加者と共有します。
Apps Script サービス
このソリューションでは、次のサービスを使用します。
- ドライブ サービス - テンプレート ドキュメントが存在するかどうかを確認し、存在しない場合はテンプレート ドキュメント用の新しいフォルダを作成します。新しい議題ごとにテンプレート ドキュメントのコピーを作成します。
- ドキュメント サービス - 議題テンプレートを作成します。
- カレンダー サービス - 「#agenda」タグが付いた予定をチェックし、予定の説明を議事録ドキュメントへのリンクで更新します。
- ベースサービス -
Session
クラスを使用してユーザーのメールアドレスを取得します。これにより、現在のユーザーのトリガーが作成されます。 - スクリプト サービス - ユーザーのカレンダーが変更されるたびにトリガーされるトリガーを作成します。
前提条件
このサンプルを使用するには、次の前提条件を満たしている必要があります。
- Google アカウント(Google Workspace アカウントの場合、管理者の承認が必要となる可能性があります)。
- インターネットにアクセスできるウェブブラウザ。
スクリプトを設定する
- 下のボタンをクリックして、サンプル Make an agenda for meetings Apps Script プロジェクトを開きます。
プロジェクトを開く - [概要] をクリックします。
- 概要ページで [コピーを作成]
をクリックします。
- コピーしたプロジェクトで、関数プルダウンから [setUp] を選択します。
- [実行] をクリックします。
- メッセージが表示されたら、スクリプトを承認します。OAuth 同意画面に「このアプリは確認されていません」という警告が表示された場合は、[詳細] > [{プロジェクト名} に移動(安全でない)] を選択して続行します。
スクリプトを実行する
- Google カレンダーを開きます。
- 新しい予定を作成するか、既存の予定を編集します。
- 説明に
#agenda
を追加して、予定を保存します。 - ドキュメントが共有されたことを知らせるメール通知が届いていないか確認するか、カレンダーを更新してイベントをもう一度クリックし、議題ドキュメントへのリンクを表示します。
参加者全員に、議題を表示するためのメール通知が届きます。このスクリプトでは、参加者に編集権限が付与されますが、スクリプトを編集して参加者の議題ドキュメントの権限を更新できます。
コードを確認する
このソリューションの Apps Script コードを確認するには、下の [ソースコードを表示] をクリックします。
ソースコードを表示
コード.gs
修正
サンプルは、必要に応じて自由に編集できます。以下に、変更可能なオプションをいくつか示します。
参加者の議題ドキュメントの権限を更新する
スクリプトは、参加者に編集権限を付与します。権限を閲覧のみに制限する場合は、コードの次の部分で addEditor
メソッドを addViewer
メソッドに置き換えます。
for (let i in event.getGuestList()) { let guest = event.getGuestList()[i]; newDoc.addEditor(guest.getEmail());
議題ドキュメントのテンプレートを編集する
議題ドキュメント テンプレートを更新する手順は次のとおりです。
- カレンダーの予定で最初のアジェンダを作成したら、Google ドライブを開きます。
- [Agenda Maker - App] というフォルダを開きます。
- Agenda TEMPLATE## ドキュメントを開き、編集します。
寄稿者
このサンプルは、プロダクト マネジメントとプラットフォーム戦略コンサルタントの Jeremy Glassenberg が作成しました。Jeremy の Twitter アカウントは @jglassenberg です。
このサンプルは、Google デベロッパー エキスパートの協力を得て Google が管理しています。