Google ドライブのインターフェースを構築する

Google Workspace アドオンを使用すると、ユーザーがドライブを開いたときにカスタマイズされたインターフェースを表示できます。これにより、ユーザーに関連する追加情報を提供したり、タスクを自動化したり、サードパーティ システムをドライブに接続したりできます。

Google Workspace アドオンの UI にアクセスする

ドライブのユーザー インターフェースの右側のアイコン列にアドオンのアイコンが表示されている場合は、ドライブでアドオンを開くことができます。アドオンでは、ホームページ インターフェース、アイテム選択インターフェース、またはその両方を定義できます。

アドオンのドライブ インターフェースを構築する

次の一般的な手順に沿って、ドライブを拡張するインターフェースを構築します。

  1. アドオンに ドライブ固有のホームページを表示するかどうかを決定します。 また、ユーザーがドライブのアイテムを選択したときにコンテキスト インターフェースを表示するかどうかも決定します。
  2. 必要な ドライブ スコープを含め、適切な addOns.common フィールドと addOns.drive フィールド をアドオン スクリプト プロジェクト のマニフェストに追加します。
  3. ドライブ固有のホームページを表示する場合は、ドライブ固有の ホームページを実装してこのインターフェースを構築します。drive.homepageTrigger複数の Google Workspace ホストに common.homepageTrigger インターフェースを使用することもできます。
  4. ドライブのコンテキスト アイテム選択 インターフェースを表示する場合は、drive.onItemsSelectedTrigger コンテキスト トリガー関数を実装してこのインターフェースを構築する必要があります。詳しくは、選択したアイテムの ドライブ コンテキスト インターフェース をご覧ください。
  5. ボタンのクリックなど、ユーザーの UI 操作に応答するために必要な関連するコールバック関数を実装します。

ドライブのホームページ

ドライブでは、アドオンの ホームページを表示できます。アドオンの共通ホームページをドライブに表示するには、アドオンのマニフェストにaddOns.driveフィールドが含まれていることを確認します。

または、アドオンのマニフェストに drive.homepageTrigger を追加して、 ドライブ固有のホームページを表示することもできます。

どちらの場合も、アドオンのスクリプト プロジェクトでホームページ トリガー関数の名前を指定します。この関数は、必要に応じて自動的に呼び出され、ドライブのホームページを構築します。この関数を実装して、ホームページを構成する単一の Cardオブジェクトまたは Cardオブジェクトの配列を作成して返します。ホームページ トリガー関数には、クライアントのプラットフォームなどの一般的な情報を含む イベント オブジェクトがパラメータとして渡されます。イベント オブジェクトのデータを使用してホームページを構築します。

選択したアイテムのドライブ コンテキスト インターフェース

ドライブは、コンテキスト トリガーを使用して、ユーザーが 1 つ以上のドライブ アイテムを選択したときに表示するインターフェース(存在する場合)を決定します。トリガーが起動すると、アドオンの マニフェストdrive.onItemsSelectedTrigger.runFunction フィールドで指定されたコンテキスト トリガー関数 が実行されます。

ドライブのコンテキスト アイテム選択インターフェースを作成するには、次の操作を行う必要があります。

  1. アドオンのマニフェストに https://www.googleapis.com/auth/drive.addons.metadata.readonly スコープが含まれていることを確認します。

  2. マニフェストに drive.onItemsSelectedTrigger セクションが含まれていることを確認します。

  3. drive.onItemsSelectedTrigger フィールドで指定された関数を実装します。この関数は、イベント オブジェクトを 引数として受け取り、単一の Card オブジェクトまたは Card オブジェクトの配列を返す必要があります。

  4. 他のカードと同様に、インターフェースのウィジェットのインタラクティビティを提供するために使用されるコールバック関数を実装します。たとえば、インターフェースにボタン を含める場合は、ボタンにアタッチされた アクションと、ボタンがクリックされたときに実行される実装済みの コールバック関数が必要です。

イベント オブジェクト

イベント オブジェクトが作成され、 drive.homepageTrigger または drive.onItemsSelectedTrigger トリガー関数が呼び出されるときに、その関数に渡されます。トリガー関数は、このイベント オブジェクトの情報を使用して、アドオンのカードの作成方法を決定したり、アドオンの動作を制御したりします。

イベント オブジェクトの完全な構造については、 イベント オブジェクトをご覧ください。ドライブがアドオンのアクティブなホストアプリの場合、コンテキスト イベント オブジェクトには、ドライブ イベント オブジェクト フィールドが含まれます。

アイテム選択トリガーのコンテキスト ドライブ イベント オブジェクトには、トリガーが起動したときにユーザーが選択したアイテムに関する情報が含まれます。ユーザーがドライブで複数のアイテムを選択した場合、いずれかのアイテムが最も関心のあるアイテムと見なされます。このアイテムはアクティブ カーソル アイテムと呼ばれます。

アドオンの動作を複数の 選択したアイテムに適用する場合は、イベント オブジェクトの drive.selectedItems 配列に記載されている情報を使用して、すべてのアイテムを特定します。

アドオンの動作を 1 つの選択したアイテムにのみ適用する場合は、イベント オブジェクトの drive.activeCursorItem フィールドに記載されている情報を使用して、選択したアイテムの中からアイテムを特定します。`drive.selectedItems` 配列から使用するアイテムを推測しないでください。drive.selectedItems

次の例は、ドライブ イベント オブジェクトdrive.onItemsSelectedTrigger 関数に渡されることを示しています。

{
  "commonEventObject": { ... },
  "drive": {
    "activeCursorItem":{
      "addonHasFileScopePermission": true,
      "id":"0B_sX1fXRRU6Ac3RhcnRlcl9maWxl",
      "iconUrl": "https://drive-thirdparty.googleusercontent.com...",
      "mimeType":"application/pdf",
      "title":"How to get started with Drive"
    },
    "selectedItems": [
      {
        "addonHasFileScopePermission": true,
        "id":"0B_sX1fXRRU6Ac3RhcnRlcl9maWxl",
        "iconUrl":"https://drive-thirdparty.googleusercontent.com...",
        "mimeType":"application/pdf",
        "title":"How to get started with Drive"
      },
      ...
    ]
  },
  ...
}