تنفيذ واجهة برمجة التطبيقات Co-Doing API

تُستخدَم واجهة برمجة التطبيقات 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.

إنشاء عميل للأنشطة المشترَكة

للبدء، أنشِئ CoDoingClient عنصر من AddonSession.

لإنشاء 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 بالحالة الحالية للتطبيق.