Co-Doing API を実装する

Co-Doing API を使用すると、会議間で任意のデータを同期できます。 できます。アプリが依存する任意のデータを指定できます。

データを送信するには、データを Uint8Array にシリアル化する必要があります。詳細情報 詳しくは、JavaScript 標準ライブラリ 参照をご覧ください。

データをシリアル化する方法がわからない場合は、コードサンプルを確認する できます。

このガイドでは、Co-Doing API を実装する方法について説明します。

始める

Co-Doing API を使用するには、まず Meet アドオン。1 回 Co-Doing API の使用を開始できます 編集することもできます。

Co-Doing API を使用するには、まず AddonSession オブジェクト、 Google Meet の共同アクティビティへのエントリ ポイントとなります。

TypeScript

const session = await window.meet.addon.createAddonSession({
    cloudProjectNumber: "CLOUD_PROJECT_NUMBER",
});

CLOUD_PROJECT_NUMBER は、Google Cloud プロジェクトのプロジェクト番号に置き換えます。

共同作業クライアントを作成する

まず、AddonSession から CoDoingClient オブジェクトを作成します。

CoDoingClient を作成するには、createCoDoingClient() メソッドを呼び出して CoDoingDelegate オブジェクトを指定します。

CoDoingDelegate は、Co-Doing API の仕組みです。 は、新しい状態が利用可能になったときにアプリを更新します。想定できるのは onCoDoingStateChanged() メソッドが呼び出されると、アプリは新しい状態をすぐに適用します。

次のコードサンプルは、Co-Doing API の使用方法を示しています。

TypeScript

interface MyState {
  someString: string;
  someNumber: number;
}

/**
 * Serialize/deserialize using JSON.stringify
 * You can use any method you want; this is included for as an example
 */
function toBytes(state: MyState): Uint8Array {
  return new TextEncoder().encode(JSON.stringify(state));
}

function fromBytes(bytes: Uint8Array): MyState {
  return JSON.parse(new TextDecoder().decode(bytes)) as MyState;
}

  const coDoingClient = await addonSession.createCoDoingClient({
    activityTitle: "ACTIVITY_TITLE",
    onCoDoingStateChanged(coDoingState: CoDoingState) {
      const newState = fromBytes(coDoingState.bytes);
      // This function should apply the new state to your ongoing CoDoing activity
    },
  });

ACTIVITY_TITLE は、アクティビティのタイトルに置き換えます。

現状の管理

ユーザーがアプリ内でアクションを起こしたときは、すぐにそのアプリが を broadcastStateUpdate() メソッドを呼び出します。

次のコードサンプルは、 broadcastStateUpdate() メソッド:

TypeScript

const myState: MyState = {
  someString: "SOME_STRING",
  someNumber: 0
};

document.getElementById('some-button').onClick(() => {
  myState.someNumber = myState.someNumber + 1;
  coDoingClient.broadcastStateUpdate({ bytes: toBytes(myState) });
});

SOME_STRING は、アプリの現在の状態に置き換えます。