עבודה עם מרחבי ישיבות

איור של API ל-REST ב-Google Meet

במדריך הזה נסביר איך ליצור, לקבל ולעדכן מרחב פגישה, וגם איך לסיים ועידה פעילה במשאב spaces של ה-API ל-REST של Google Meet.

מרחב שיתוף מייצג מקום וירטואלי או אובייקט קבוע (כמו חדר ישיבות) שבו מתקיימות ועידות. בכל רגע נתון יכולה להתקיים רק שיחת ועידה אחת פעילה במרחב משותף אחד. מרחב משותף עוזר למשתמשים גם לקיים פגישות ולמצוא משאבים משותפים.

במאמר הגדרת מרחבים משותפים לפגישות ומשתתפים מוסבר איך מגדירים מרחבים משותפים לפגישות באופן פרוגרמטי.

בטבלה הבאה מפורטים התפקידים בפגישה הנדרשים כדי להשתמש בשיטות של מרחב הפגישה:

שיטה בעלים משתתפים אחרים
endActiveConference() x
get() x x x
     עם הגדרות x
     עם שיחת ועידה פעילה x x
patch() x

אימות והרשאה באמצעות פרטי כניסה של משתמשים מאפשרים לאפליקציות של Google Meet לגשת לנתוני המשתמשים ולבצע פעולות בשם המשתמש המאומת. אימות באמצעות הענקת גישה ברמת הדומיין מאפשר לתת הרשאה לחשבון השירות של האפליקציה לגשת לנתונים של המשתמשים בלי לחייב כל משתמש לתת הסכמה.

איך פלטפורמת Meet מזהה מקום פגישה

ה-API ל-REST של Google Meet יוצר משאב spaces לכל מרחב פגישה. השדה name הוא שם המשאב של המשאב.

יש שתי דרכים חשובות לזהות מרחב משותף לפגישות באמצעות השדה name:

  • space הוא מזהה המשאב של המרחב המשותף, בפורמט spaces/{space}. זהו מזהה ייחודי שנוצר על ידי השרת, והוא תלוי אותיות רישיות. לדוגמה, spaces/jQCFfuBOdN5z.

  • meetingCode הוא כינוי למרחב המשותף, בפורמט spaces/{meetingCode}. הוא מורכב ממחרוזת תווים ייחודית שניתן להקליד, והוא לא תלוי אותיות רישיות. לדוגמה, abc-mnop-xyz. האורך המקסימלי הוא 128 תווים. הוא מהווה חלק מה-meetingUri: https://meet.google.com/abc-mnop-xyz.

כדי לנהל מרחב פגישה, משתמשים בערכים הבאים בשדה {name}:

  • כדי לקבל פרטים על מרחב עבודה משותף, אפשר להשתמש ב-spaces/{space} או בכתובת החלופית spaces/{meetingCode}. מידע נוסף זמין במאמר קבלת מרחב פגישות.

  • כדי לעדכן את הפרטים של מרחב עבודה משותף, אפשר להשתמש רק ב-spaces/{space}. מידע נוסף זמין במאמר עדכון של מרחב עבודה לפגישות.

  • כדי לסיים שיחת ועידה פעילה במרחב משותף לפגישות, אפשר להשתמש רק ב-spaces/{space}. מידע נוסף זמין במאמר סיום ועידה פעילה.

יצירת מרחב משותף לפגישות

כדי ליצור מרחב פגישה, משתמשים בשיטה create() במשאב spaces.

השיטה מחזירה מופע של משאב spaces, שכולל את האובייקט SpaceConfig שהוא ההגדרה של מרחב הישיבות. הוא מכיל גם את האובייקט ActiveConference שהוא קישור למשאב conferenceRecords הנוכחי במרחב הווירטואלי.

בדוגמת הקוד הבאה מוסבר איך יוצרים מרחב פגישה:

Java

java-meet/samples/snippets/generated/com/google/apps/meet/v2/spacesservice/createspace/AsyncCreateSpace.java
import com.google.api.core.ApiFuture;
import com.google.apps.meet.v2.CreateSpaceRequest;
import com.google.apps.meet.v2.Space;
import com.google.apps.meet.v2.SpacesServiceClient;

public class AsyncCreateSpace {

  public static void main(String[] args) throws Exception {
    asyncCreateSpace();
  }

  public static void asyncCreateSpace() throws Exception {
    // This snippet has been automatically generated and should be regarded as a code template only.
    // It will require modifications to work:
    // - It may require correct/in-range values for request initialization.
    // - It may require specifying regional endpoints when creating the service client as shown in
    // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
    try (SpacesServiceClient spacesServiceClient = SpacesServiceClient.create()) {
      CreateSpaceRequest request =
          CreateSpaceRequest.newBuilder().setSpace(Space.newBuilder().build()).build();
      ApiFuture<Space> future = spacesServiceClient.createSpaceCallable().futureCall(request);
      // Do something.
      Space response = future.get();
    }
  }
}

Node.js

packages/google-apps-meet/samples/generated/v2/spaces_service.create_space.js
/**
 * This snippet has been automatically generated and should be regarded as a code template only.
 * It will require modifications to work.
 * It may require correct/in-range values for request initialization.
 * TODO(developer): Uncomment these variables before running the sample.
 */
/**
 *  Space to be created. As of May 2023, the input space can be empty. Later on
 *  the input space can be non-empty when space configuration is introduced.
 */
// const space = {}

// Imports the Meet library
const {SpacesServiceClient} = require('@google-apps/meet').v2;

// Instantiates a client
const meetClient = new SpacesServiceClient();

async function callCreateSpace() {
  // Construct request
  const request = {
  };

  // Run request
  const response = await meetClient.createSpace(request);
  console.log(response);
}

callCreateSpace();

Python

packages/google-apps-meet/samples/generated_samples/meet_v2_generated_spaces_service_create_space_async.py
# This snippet has been automatically generated and should be regarded as a
# code template only.
# It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
#   client as shown in:
#   https://googleapis.dev/python/google-api-core/latest/client_options.html
from google.apps import meet_v2


async def sample_create_space():
    # Create a client
    client = meet_v2.SpacesServiceAsyncClient()

    # Initialize request argument(s)
    request = meet_v2.CreateSpaceRequest(
    )

    # Make the request
    response = await client.create_space(request=request)

    # Handle the response
    print(response)

הצגת פרטים על מרחב לפגישות

כדי לקבל פרטים על מרחב פעילות פעיל ועל ההגדרות שלו, משתמשים בשיטה get() במשאב spaces עם name שצוין. מידע נוסף זמין במאמר איך מערכת Meet מזהה מרחבים משותפים לפגישות.

השיטה מחזירה מרחב פגישה כמכונה של המשאב spaces.

דוגמת הקוד הבאה מראה איך לאחזר מרחב פגישה:

Java

java-meet/samples/snippets/generated/com/google/apps/meet/v2/spacesservice/getspace/AsyncGetSpace.java
import com.google.api.core.ApiFuture;
import com.google.apps.meet.v2.GetSpaceRequest;
import com.google.apps.meet.v2.Space;
import com.google.apps.meet.v2.SpaceName;
import com.google.apps.meet.v2.SpacesServiceClient;

public class AsyncGetSpace {

  public static void main(String[] args) throws Exception {
    asyncGetSpace();
  }

  public static void asyncGetSpace() throws Exception {
    // This snippet has been automatically generated and should be regarded as a code template only.
    // It will require modifications to work:
    // - It may require correct/in-range values for request initialization.
    // - It may require specifying regional endpoints when creating the service client as shown in
    // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
    try (SpacesServiceClient spacesServiceClient = SpacesServiceClient.create()) {
      GetSpaceRequest request =
          GetSpaceRequest.newBuilder().setName(SpaceName.of("[SPACE]").toString()).build();
      ApiFuture<Space> future = spacesServiceClient.getSpaceCallable().futureCall(request);
      // Do something.
      Space response = future.get();
    }
  }
}

Node.js

packages/google-apps-meet/samples/generated/v2/spaces_service.get_space.js
/**
 * This snippet has been automatically generated and should be regarded as a code template only.
 * It will require modifications to work.
 * It may require correct/in-range values for request initialization.
 * TODO(developer): Uncomment these variables before running the sample.
 */
/**
 *  Required. Resource name of the space.
 *  Format: `spaces/{space}` or `spaces/{meetingCode}`.
 *  `{space}` is the resource identifier for the space. It's a unique,
 *  server-generated ID and is case sensitive. For example, `jQCFfuBOdN5z`.
 *  `{meetingCode}` is an alias for the space. It's a typeable, unique
 *  character string and is non-case sensitive. For example, `abc-mnop-xyz`.
 *  The maximum length is 128 characters.
 *  A `meetingCode` shouldn't be stored long term as it can become
 *  dissociated from a meeting space and can be reused for different meeting
 *  spaces in the future. Generally, a `meetingCode` expires 365 days after
 *  last use. For more information, see Learn about meeting codes in Google
 *  Meet (https://support.google.com/meet/answer/10710509).
 *  For more information, see How Meet identifies a meeting
 *  space (https://developers.google.com/meet/api/guides/meeting-spaces#identify-meeting-space).
 */
// const name = 'abc123'

// Imports the Meet library
const {SpacesServiceClient} = require('@google-apps/meet').v2;

// Instantiates a client
const meetClient = new SpacesServiceClient();

async function callGetSpace() {
  // Construct request
  const request = {
    name,
  };

  // Run request
  const response = await meetClient.getSpace(request);
  console.log(response);
}

callGetSpace();

Python

packages/google-apps-meet/samples/generated_samples/meet_v2_generated_spaces_service_get_space_async.py
# This snippet has been automatically generated and should be regarded as a
# code template only.
# It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
#   client as shown in:
#   https://googleapis.dev/python/google-api-core/latest/client_options.html
from google.apps import meet_v2


async def sample_get_space():
    # Create a client
    client = meet_v2.SpacesServiceAsyncClient()

    # Initialize request argument(s)
    request = meet_v2.GetSpaceRequest(
        name="name_value",
    )

    # Make the request
    response = await client.get_space(request=request)

    # Handle the response
    print(response)

מחליפים את הערך של שם המרחב המשותף במזהה הייחודי של המרחב המשותף לפגישה שנוצר על ידי השרת.

עדכון של מרחב משותף לפגישות

כדי לעדכן את הפרטים של מרחב עבודה לפגישות, משתמשים בשיטה patch() במשאב spaces עם name שצוין. מידע נוסף זמין במאמר איך מערכת Meet מזהה מרחבים משותפים לפגישות.

השיטה patch() מקבלת גם פרמטר שאילתה אופציונלי updateMask. השדה הוא מסוג FieldMask. זוהי רשימה מופרדת בפסיקים של השדות שרוצים לעדכן במרחב המשותף.

השיטה מחזירה מרחב פגישה כמכונה של המשאב spaces.

דוגמת הקוד הבאה מראה איך לעדכן מרחב עבודה לפגישות:

Java

java-meet/samples/snippets/generated/com/google/apps/meet/v2/spacesservice/updatespace/AsyncUpdateSpace.java
import com.google.api.core.ApiFuture;
import com.google.apps.meet.v2.Space;
import com.google.apps.meet.v2.SpacesServiceClient;
import com.google.apps.meet.v2.UpdateSpaceRequest;
import com.google.protobuf.FieldMask;

public class AsyncUpdateSpace {

  public static void main(String[] args) throws Exception {
    asyncUpdateSpace();
  }

  public static void asyncUpdateSpace() throws Exception {
    // This snippet has been automatically generated and should be regarded as a code template only.
    // It will require modifications to work:
    // - It may require correct/in-range values for request initialization.
    // - It may require specifying regional endpoints when creating the service client as shown in
    // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
    try (SpacesServiceClient spacesServiceClient = SpacesServiceClient.create()) {
      UpdateSpaceRequest request =
          UpdateSpaceRequest.newBuilder()
              .setSpace(Space.newBuilder().build())
              .setUpdateMask(FieldMask.newBuilder().build())
              .build();
      ApiFuture<Space> future = spacesServiceClient.updateSpaceCallable().futureCall(request);
      // Do something.
      Space response = future.get();
    }
  }
}

Node.js

packages/google-apps-meet/samples/generated/v2/spaces_service.update_space.js
/**
 * This snippet has been automatically generated and should be regarded as a code template only.
 * It will require modifications to work.
 * It may require correct/in-range values for request initialization.
 * TODO(developer): Uncomment these variables before running the sample.
 */
/**
 *  Required. Space to be updated.
 */
// const space = {}
/**
 *  Optional. Field mask used to specify the fields to be updated in the space.
 *  If update_mask isn't provided(not set, set with empty paths, or only has ""
 *  as paths), it defaults to update all fields provided with values in the
 *  request.
 *  Using "*" as update_mask will update all fields, including deleting fields
 *  not set in the request.
 */
// const updateMask = {}

// Imports the Meet library
const {SpacesServiceClient} = require('@google-apps/meet').v2;

// Instantiates a client
const meetClient = new SpacesServiceClient();

async function callUpdateSpace() {
  // Construct request
  const request = {
    space,
  };

  // Run request
  const response = await meetClient.updateSpace(request);
  console.log(response);
}

callUpdateSpace();

Python

packages/google-apps-meet/samples/generated_samples/meet_v2_generated_spaces_service_update_space_async.py
# This snippet has been automatically generated and should be regarded as a
# code template only.
# It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
#   client as shown in:
#   https://googleapis.dev/python/google-api-core/latest/client_options.html
from google.apps import meet_v2


async def sample_update_space():
    # Create a client
    client = meet_v2.SpacesServiceAsyncClient()

    # Initialize request argument(s)
    request = meet_v2.UpdateSpaceRequest(
    )

    # Make the request
    response = await client.update_space(request=request)

    # Handle the response
    print(response)

מחליפים את הערך של שם המרחב המשותף במזהה הייחודי של המרחב המשותף לפגישה שנוצר על ידי השרת.

סיום שיחת ועידה פעילה

כדי לסיים ועידה פעילה במרחב משותף (אם יש כזה), משתמשים ב-method‏ endActiveConference() במשאב spaces. גם הגוף של הבקשה וגם גוף התשובה ריקים. מידע נוסף זמין במאמר איך Meet מזהה מרחב שיתוף פעולה.

דוגמת הקוד הבאה מראה איך לסיים פגישה פעילה:

Java

java-meet/samples/snippets/generated/com/google/apps/meet/v2/spacesservice/endactiveconference/AsyncEndActiveConference.java
import com.google.api.core.ApiFuture;
import com.google.apps.meet.v2.EndActiveConferenceRequest;
import com.google.apps.meet.v2.SpaceName;
import com.google.apps.meet.v2.SpacesServiceClient;
import com.google.protobuf.Empty;

public class AsyncEndActiveConference {

  public static void main(String[] args) throws Exception {
    asyncEndActiveConference();
  }

  public static void asyncEndActiveConference() throws Exception {
    // This snippet has been automatically generated and should be regarded as a code template only.
    // It will require modifications to work:
    // - It may require correct/in-range values for request initialization.
    // - It may require specifying regional endpoints when creating the service client as shown in
    // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
    try (SpacesServiceClient spacesServiceClient = SpacesServiceClient.create()) {
      EndActiveConferenceRequest request =
          EndActiveConferenceRequest.newBuilder()
              .setName(SpaceName.of("[SPACE]").toString())
              .build();
      ApiFuture<Empty> future =
          spacesServiceClient.endActiveConferenceCallable().futureCall(request);
      // Do something.
      future.get();
    }
  }
}

Node.js

packages/google-apps-meet/samples/generated/v2/spaces_service.end_active_conference.js
/**
 * This snippet has been automatically generated and should be regarded as a code template only.
 * It will require modifications to work.
 * It may require correct/in-range values for request initialization.
 * TODO(developer): Uncomment these variables before running the sample.
 */
/**
 *  Required. Resource name of the space.
 *  Format: `spaces/{space}`.
 *  `{space}` is the resource identifier for the space. It's a unique,
 *  server-generated ID and is case sensitive. For example, `jQCFfuBOdN5z`.
 *  For more information, see How Meet identifies a meeting
 *  space (https://developers.google.com/meet/api/guides/meeting-spaces#identify-meeting-space).
 */
// const name = 'abc123'

// Imports the Meet library
const {SpacesServiceClient} = require('@google-apps/meet').v2;

// Instantiates a client
const meetClient = new SpacesServiceClient();

async function callEndActiveConference() {
  // Construct request
  const request = {
    name,
  };

  // Run request
  const response = await meetClient.endActiveConference(request);
  console.log(response);
}

callEndActiveConference();

Python

packages/google-apps-meet/samples/generated_samples/meet_v2_generated_spaces_service_end_active_conference_async.py
# This snippet has been automatically generated and should be regarded as a
# code template only.
# It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
#   client as shown in:
#   https://googleapis.dev/python/google-api-core/latest/client_options.html
from google.apps import meet_v2


async def sample_end_active_conference():
    # Create a client
    client = meet_v2.SpacesServiceAsyncClient()

    # Initialize request argument(s)
    request = meet_v2.EndActiveConferenceRequest(
        name="name_value",
    )

    # Make the request
    await client.end_active_conference(request=request)

מחליפים את הערך של שם המרחב המשותף במזהה הייחודי של המרחב המשותף לפגישה שנוצר על ידי השרת.