Meet アドオンを使用してコラボレーションする

会議の参加者は、Google Meet アドオン アクティビティで共同作業できます。コラボレーション アクティビティが開始されると、アクティビティが進行中であることを示す通知が会議のすべての参加者に届きます。

この通知は、アドオンの可用性とインストール ステータスに合わせて表示されます。

  • 参加者がアドオンをインストールしている場合: アクティビティに参加できます。

  • 参加者がアドオンをインストールしていない場合: アドオンをインストールするように求められます。

  • 参加者のプラットフォームでアドオンを使用できない場合: 現在のデバイスを使用してアクティビティに参加できないことが通知されます。

ユーザーがアクティビティに参加すると、アドオン コンテンツを含む独自の iframe が読み込まれます。新規参加者がコラボレーション アクティビティをメインステージとサイドパネルのどちらで開くかをカスタマイズできます。

アクティビティを開始する

アクティビティは、ActivityStartingState インターフェースを使用する startActivity() メソッドを呼び出すことで開始されます。

ステップ 1(省略可): アドオンがアクティビティの開始状態を設定する

ActivityStartingState には、参加者がアクティビティへの招待を承諾したときに使用されるアドオンの初期状態に関する情報が含まれます。

アドオンは、アクティビティの前またはアクティビティ中にいつでも setActivityStartingState() メソッドを呼び出して ActivityStartingState を設定または更新できます。ActivityStartingStatestartActivity() の呼び出しでのみ設定されている場合、setActivityStartingState() の呼び出しは省略できます。

ステップ 2: アドオンがアクティビティを開始する

アクティビティは、アドオンが MeetSidePanelClientstartActivity() メソッドを呼び出すと開始されます。startActivity() メソッドは ActivityStartingState オブジェクトをパラメータとして受け取るため、setActivityStartingState() を呼び出す代わりに startActivity() を呼び出すことができます。

ユーザーがコンテンツの選択を完了し、アクティビティを開始する準備ができたら、アドオンで startActivity() メソッドを次のように呼び出します。

    sidePanelClient.startActivity({
        mainStageUrl: "https://app.example.com/mainstage",
        additionalData: JSON.stringify({
            // State to send to participants.
        })
    });

startActivity() メソッドが呼び出されると、Meet は次のアクションを実行します。

  • 他の参加者の場合: アクティビティが進行中であることを知らせる通知が表示されます。

  • イニシエータの場合: ActivityStartingState でメインステージの URL が指定されている場合、Meet は ActivityStartingState の URL を使用してメインステージを開きます。

ステップ 3: アクティビティの開始状態を取得する

ユーザーがアクティビティに参加すると、ActivityStartingState に応じて、メインステージまたはサイドパネルにアドオンが読み込まれます。

additionalData プロパティを使用すると、アクティビティに参加するユーザーと初期データ(状態とも呼ばれます)を共有できます。MainStageClient または SidePanelClient を初期化したら、getActivityStartingState() メソッドを呼び出して additionalData プロパティを取得できます。

const startingState = client.getActivityStartingState();
const additionalData = JSON.parse(startingState.additionalData);

ステップ 4(省略可): アクティビティでアドオンの状態を共有する

アクティビティの進行中にユーザー間で状態を共有することもできます。状態を共有する方法は 2 つあります。

  • 独自の同期バックエンドを作成して、自分で処理する。
  • Co-Doing API を使用します。これは、ユーザー間で任意のデータをすばやく簡単に共有できる方法です。

例: GitHub のアニメーション アドオン

GitHub の「Animation」サンプル アドオンには、アドオンでのコラボレーションが含まれています。このガイドのステップ 1 は、サンプルに含まれていません。代わりに、アドオン イニシエータがサイドパネルの [アニメーションを開始] ボタンをクリックすると、ユーザーが選択した色が開始状態に追加され、startActivity() メソッドが呼び出されます(ステップ 2)。アクティビティの開始後、メインステージは getActivityStartingState() メソッドを呼び出して開始状態を取得します(ステップ 3)。このサンプル アドオンのアクティビティでは、状態(選択した色)が参加者間で共有されないため、ステップ 4 は省略されています。ただし、ユーザーは色を選択することで自身の状態を変更できます。この色は、フレーム間メッセージングを使用してサイドパネルのフレームからメインステージ フレームに送信されます。

制約