Co-Doing API は、会議の参加者間で任意のデータを同期するために使用されます。アプリが依存するデータであれば、どのようなデータでもかまいません。
データを送信するには、データを Uint8Array
にシリアル化する必要があります。詳細については、JavaScript 標準ライブラリのリファレンスをご覧ください。
データのシリアル化方法がわからない場合は、次のコードサンプルをご覧ください。
このガイドでは、Co-Doing API を実装する方法について説明します。
使ってみる
Co-Doing API を使用するには、まず Meet アドオンをデプロイする必要があります。これらの手順が完了したら、新しいアドオン内から 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 は、アプリの現在の状態に置き換えます。