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

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

この通知は、アドオンの利用可否とインストール ステータスに応じて調整されます。

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

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

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

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

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

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

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

ActivityStartingState には、参加者が への参加リクエストを承諾したときに使用されるアドオンの初期状態に関する情報が含まれています。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 独自の同期バックエンドを作成して、自分で処理する。
  • Co-Doing APIを使用する。 これは、ユーザー間で任意のデータを共有するのに便利で迅速な方法です。

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

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

制約

  • ActivityStartingState で指定された URL は、 アドオン マニフェストで指定されたオリジンと同じオリジンに属している必要があります。詳しくは、 アドオンのセキュリティをご覧ください。
  • sidePanelUrl プロパティ、 mainStageUrl プロパティ、および additionalData プロパティの文字数は、SDK リファレンス ドキュメントに 記載されているそれぞれのサイズ上限に準拠している必要があります。