ベスト プラクティス

アドオンの設計に関する次のガイドに沿って、ユーザーの全体的なエクスペリエンスを向上させます。

一般的なおすすめの方法

開発するすべてのアドオンについて、以下のベスト プラクティスに従うことをおすすめします。

開始する前にアドオンの所有権を確認する

アドオンは Apps Script プロジェクトによって定義されます。Apps Script プロジェクトは特定のアカウントによって所有されるか、共有ドライブに配置されている必要があります。アドオンをコーディングする前に、どのアカウントがプロジェクトを所有し、どのアカウントがパブリッシャーとして機能するかを決定します。また、共同編集者として動作するアカウントを決定し、それらのアカウントがスクリプト プロジェクトとそれに関連する Cloud Platform プロジェクトにアクセスできることを確認します。

Google Workspace を複製するのではなく拡張する

アドオンは、拡張する Google Workspace アプリケーションに新機能を提供したり、複雑なタスクを自動化したりします。アプリケーション内の既存の機能を複製するだけのアドオンや、ワークフローの大幅な改善を再現しないアドオンは、公開のアドオン審査に合格する可能性は低くなります。

範囲を絞り込む

スコープを明示的に定義する場合は、常に最も制限の少ないスコープセットを選択してください。たとえば、アドオンが読み取り権限のみを必要とする場合は、https://www.googleapis.com/auth/calendar スコープでユーザーのカレンダーへの完全アクセス権をリクエストしないでください。読み取り専用アクセスの場合は、https://www.googleapis.com/auth/calendar.readonly スコープを使用します。

ライブラリに過度に依存しない

Apps Script のライブラリを使用すると、すべての Apps Script コードが 1 つのスクリプト プロジェクト内に含まれていた場合よりも、アドオンの実行が遅くなる可能性があります。Apps Script ライブラリはアドオンで動作しますが、使用するとパフォーマンスが低下することがあります。不要なライブラリをプロジェクトに含めないようにし、アドオンがライブラリに依存することを減らす方法を検討してください。

上記のレイテンシは、サーバー側のライブラリとして使用されている Apps Script プロジェクトにのみ適用されます。jQuery などのクライアント側の JavaScript ライブラリは、このレイテンシを発生させることなく自由に使用できます。

Google Workspace アドオンのベスト プラクティス

次のベスト プラクティスは、Google Workspace アドオンとカードサービスの使用にのみ適用されます。

数枚のカードのみを使用する

アドオンが使用するカードが多すぎると、ナビゲーション構成が複雑になり、管理が難しくなります。

必要以上に多くのカードを作成しようとしないでください。

ウィジェット作成関数を使用する

Card などの複雑な UI オブジェクトを作成するコードを記述する場合は、そのコードを独自の関数に配置することを検討してください。この作成関数は、オブジェクトをビルドして返すだけです。これにより、UI の更新が必要になるたびに、そのオブジェクトをすばやく再生成できます。カードサービスのビルダークラスを使用した後に、必ず build() を呼び出してください。

カードをシンプルに保つ

特定のカードに表示されるウィジェットが多すぎると、画面いっぱいに表示されすぎて、アプリの有用性が低下します。大きなカード セクションは折りたたみ可能な UI 要素としてレンダリングされますが、ユーザーは情報を非表示にします。アドオンを効率化し、ユーザーが必要とするものだけを提供することを目指します。

エラーカードを使用する

エラー状態のカードを作成します。アドオンでエラーが発生した場合は、エラー情報と、可能であれば修正方法を記載したカードが表示されます。たとえば、承認に失敗したためにアドオンが Google 以外のサービスに接続できない場合は、その旨を示すカードを表示し、使用中のアカウント情報を確認するようユーザーに依頼します。

テストとテスト メッセージを作成する

作成したすべてのアドオンを入念にテストする必要があります。テストデータを使用してカードとウィジェットを作成するテスト関数を作成し、オブジェクトが想定どおりに作成されることを確認します。

アクション コールバック関数を使用する場合は、通常、レスポンス オブジェクトを作成する必要があります。次のようなステートメントを使用すると、レスポンスが正しく作成されていることを確認できます。

    Logger.log(response.printJson());

[実行] メニューを使用して、Apps Script エディタから直接、作成したテスト関数を実行します。有効なアドオンが動作する場合は、テストできるように、非公開バージョンをインストールしてください。

アドオンによって拡張される各ホストアプリケーションに適したテストデータを使用します。たとえば、アドオンが Gmail を拡張する場合、異なるメッセージ コンテンツを与えてもアドオンが期待どおりに機能するように、複数のテストメールとそのメッセージ ID が必要になります。特定のメールのメッセージ ID を取得するには、Gmail API Users.messages.list メソッドを使用してメールを一覧表示するか、Apps Script の Gmail サービスを使用します。

カレンダー会議のベスト プラクティス

アドオンでサードパーティのカレンダーの会議オプションを Google カレンダーに統合する場合は、以下のおすすめの方法に従ってください。

onCreateFunction のライトを維持

マニフェストで定義した各 onCreateFunction は、ユーザーがそのタイプの会議ソリューションを作成しようとすると、同期的に呼び出されます。これらの関数が、会議の作成に必要な最小限の作業のみを行うようにしてください。これらの関数を使用しすぎると、アドオンのユーザー エクスペリエンスが低下する可能性があります。

会議データに適切な ConferenceData フィールドを使用する

ConferenceData オブジェクトを作成するときに、会議の詳細情報(アクセスコード、電話番号、PIN、URI など)を入力できます。この情報には、対応する EntryPoint フィールドを使用してください。この詳細情報は ConferenceData メモ フィールドには入力しないでください。

Google カレンダーの予定に会議の詳細情報を追加しない

アドオンで Google カレンダーの予定の説明にサードパーティ製の会議情報を追加する必要はありません。Google カレンダーでは必要に応じて 自動的に行われます。