コーディング レベル: 初級
所要時間: 15 分
プロジェクトの種類: イベント ドリブン トリガーを使用した自動化
目標
- ソリューションの機能を理解します。
- Apps Script サービスがソリューション内でどのように機能するかを理解する。
- スクリプトを設定します。
- スクリプトを実行します。
このソリューションについて
Google ドキュメントで議題のドキュメントを自動的に作成し、Google カレンダーの会議に添付する。
仕組み
このスクリプトは、議題のドキュメント テンプレートを作成します。カレンダーを更新すると、あなたがオーナーの予定の説明に「#agenda」が含まれているかどうかがチェックされます。タグが存在する場合、スクリプトはテンプレートのコピーを作成してカレンダーの予定に追加し、イベントの参加者と共有します。
Apps Script サービス
このソリューションでは、次のサービスを使用します。
- ドライブ サービス - テンプレート ドキュメントが存在するかどうかを確認し、存在しない場合は、テンプレート ドキュメント用の新しいフォルダを作成します。新しい議題ごとにテンプレート ドキュメントのコピーを作成します。
- Document サービス - 予定リストのテンプレートを作成します。
- カレンダー サービス - 「#agenda」タグの付いた予定を確認し、予定リストへのリンクで予定の説明を更新します。
- 基本サービス -
Session
クラスを使用して、ユーザーのメールアドレスを取得します。これにより、現在のユーザーのトリガーを作成できます。 - スクリプト サービス - ユーザーのカレンダーが変更されるたびに配信されるトリガーを作成します。
前提条件
このサンプルを使用するには、次の前提条件を満たす必要があります。
- Google アカウント(Google Workspace アカウントには管理者の承認が必要になる場合があります)。
- インターネットにアクセスできるウェブブラウザ。
スクリプトを設定する
- 下のボタンをクリックすると、Apps Script のサンプル「会議の議題を作成する」プロジェクトが開きます。
プロジェクトを開く - [概要] をクリックします。
- 概要ページでコピーを作成 をクリックします。
- コピーしたプロジェクトの関数プルダウンで、[setUp] を選択します。
- [実行] をクリックします。
- プロンプトが表示されたら、スクリプトを承認します。 OAuth 同意画面に「このアプリは確認されていません」という警告が表示された場合は、[詳細設定] > [{プロジェクト名} に移動(安全でない)] を選択します。
スクリプトを実行する
- Google カレンダーを開きます。
- 新しい予定を作成するか、既存の予定を編集します。
- 説明に
#agenda
を追加して、予定を保存します。 - ドキュメントが共有されたことを知らせるメール通知が届くか、 カレンダーを更新して予定をもう一度クリックすると、予定リストドキュメントへのリンクが表示されます。
すべての参加者に、アジェンダを表示するためのメール通知が送信されます。このスクリプトは参加者に編集権限を付与しますが、スクリプトを編集して参加者のアジェンダ ドキュメント権限を更新することもできます。
コードを確認する
このソリューションの Apps Script コードを確認するには、下の [ソースコードを表示] をクリックします。
ソースコードを表示
Code.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 Developer Experts の支援により Google によって管理されています。