会議の参加者は、Google Meet のアドオン アクティビティで共同作業できます。コラボレーション アクティビティが開始されると、アクティビティが進行中であることを示す通知が会議のすべての参加者に届きます。
この通知は、アドオンの可用性とインストール ステータスに合わせて表示されます。
参加者にアドオンがインストールされている場合: アクティビティに参加できます。
参加者がアドオンをインストールしていない場合: アドオンをインストールするよう求められます。
参加者のプラットフォームでアドオンを使用できない場合: 現在のデバイスを使用してアクティビティに参加できないことが通知されます。
ユーザーがアクティビティに参加すると、アドオン コンテンツを含む独自の iframe が読み込まれます。新規参加者がコラボレーション アクティビティをメインステージとサイドパネルのどちらで開くかをカスタマイズできます。
アクティビティを開始する
アクティビティは、ActivityStartingState
インターフェースを使用する startActivity()
メソッドを呼び出すことで開始されます。
ステップ 1(省略可): アドオンがアクティビティの開始状態を設定します
ActivityStartingState
には、参加者がアクティビティへの招待を承諾したときに使用されるアドオンの初期状態に関する情報が含まれます。
アドオンは、アクティビティの開始前またはアクティビティ中にいつでも setActivityStartingState()
メソッドを呼び出して ActivityStartingState
を設定または更新できます。ActivityStartingState
が startActivity()
の呼び出しで排他的に設定されている場合、setActivityStartingState()
の呼び出しは省略できます。
ステップ 2: アドオンがアクティビティを開始する
アクティビティは、アドオンが MeetSidePanelClient
で startActivity()
メソッドを呼び出すと開始されます。startActivity()
メソッドは ActivityStartingState
オブジェクトをパラメータとして受け取るため、setActivityStartingState()
を呼び出す代わりに startActivity()
を呼び出すことができます。
ユーザーがコンテンツの選択を完了し、アクティビティを開始する準備ができたら、アドオンで startActivity()
メソッドを次のように呼び出します。
sidePanelClient.startActivity({
mainStageUrl: "https://app.example.com/mainstage",
additionalData: JSON.stringify({
// State to send to participants.
})
});
startActivity()
メソッドが呼び出されると、Meet は次のアクションを実行します。
他の参加者の場合: 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 の「アニメーション」サンプル アドオンには、アドオンでのコラボレーションが含まれています。このガイドのステップ 1 はサンプルに含まれていません。代わりに、アドオン開始者がサイドパネルの [アニメーションを開始] ボタンをクリックすると、startActivity()
メソッドが呼び出され(ステップ 2)、開始状態にユーザーが選択した色が設定されます。アクティビティの開始後、メインステージは getActivityStartingState()
メソッドを呼び出して開始状態を取得します(ステップ 3)。このサンプル アドオンのアクティビティでは、状態(選択した色)が参加者間で共有されないため、ステップ 4 は省略されています。ただし、個々のユーザーは色を選択して自分の状態を変更できます。色は、フレーム間メッセージングを使用してサイドパネル フレームからメインステージ フレームに送信されます。
制約
ActivityStartingState
で指定された URL は、アドオン マニフェストで指定されたオリジンと同じオリジンに属している必要があります。詳細については、アドオンのセキュリティをご覧ください。sidePanelUrl
プロパティ、mainStageUrl
プロパティ、additionalData
プロパティの文字長は、SDK リファレンス ドキュメントに記載されているそれぞれのサイズの上限を遵守する必要があります。