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

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

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

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

  • ユーザーがドライブでアドオン アイコンをクリックすると、アドオンは対応する drive.homepageTrigger 関数(存在する場合)を実行します。この関数は、表示する ホームページ カードをビルドしてドライブに返します。drive.homepageTrigger 関数が定義されていない場合は、代わりに汎用のホームページ カードが表示されます。
  • ユーザーがドライブで 1 つ以上のアイテムを選択してからアドオン アイコンをクリックした場合、またはアドオンが開いている間にアイテムを選択した場合、アドオンは対応する drive.onItemsSelectedTrigger コンテキスト関数(存在する場合)を実行します。この関数は、アドオンのドライブのコンテキストの「アイテムが選択された」インターフェースを構築し、表示するためにドライブに返します。

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

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

  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 scope が含まれていることを確認します。

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

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

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

イベント オブジェクト

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

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

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

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

アドオンの動作を単一の選択されたアイテムにのみ適用する必要がある場合は、イベント オブジェクトの drive.activeCursorItem フィールドで提供される情報を使用して、選択されたアイテムを特定します。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"
      },
      ...
    ]
  },
  ...
}