مدیریت اعضای فضای جلسه

عضو فضای جلسه، کاربری است که برای داشتن نقشی در فضای جلسه پیکربندی شده است. این کاربران می‌توانند بدون درخواست اجازه برای اتصال (که به عنوان "در زدن" نیز شناخته می‌شود) به فضای جلسه بپیوندند.

در حالی که برگزارکنندگان جلسه می‌توانند به طور خودکار وارد فضای جلسه شوند، می‌توانید اعضای اضافی فضای جلسه را نیز طوری تنظیم کنید که بدون در زدن به جلسه بپیوندند. علاوه بر این، اعضا را می‌توان طوری تنظیم کرد که Role در جلسه داشته باشند، مانند COHOST که به آنها اجازه می‌دهد در طول کنفرانس، جلسه را به طور مشترک مدیریت کنند، اگرچه نمی‌توانند مصنوعات خودکار را پیکربندی کنند یا تنظیمات مدیریت را تغییر دهند. برای اطلاعات بیشتر در مورد دسترسی به فضای جلسه بدون در زدن، به AccessType مراجعه کنید.

منبع spaces.members شامل فیلدهای name ، email و role است.

توجه داشته باشید که عضو فضای جلسه با شرکت‌کننده متفاوت است. شرکت‌کننده شخصی است که به یک تماس پیوسته یا از حالت همراهی استفاده می‌کند، به عنوان بیننده تماشا می‌کند، یا دستگاهی در اتاق است که به یک تماس متصل است. برای هر فرد یک منبع conferenceRecords.participants وجود دارد.

رفتارهای متد رایج

هنگام مدیریت اعضای فضای جلسه با استفاده از Meet REST API، متدها از قراردادهای زیر پیروی می‌کنند:

  • پارامترهای مسیر: هر متد از یک پارامتر مسیر استفاده می‌کند. متدهای create ، list و batchUpdate از فیلد parent برای ارجاع به فضای جلسه ( spaces/{space} ) استفاده می‌کنند. متدهای delete ، get و patch از فیلد name برای فیلتر کردن نتایج بر اساس فضای جلسه و نام عضو ( spaces/{space}/members/{member} ) استفاده می‌کنند.

  • انواع بازگشتی: متدهای create ، get و patch نمونه‌ای از منبع Member را برمی‌گردانند. متدهای list و batchUpdate لیستی از منابع Member را برمی‌گردانند ( delete یک بدنه پاسخ خالی برمی‌گرداند).

  • ماسک فیلدها: همه متدها، به جز delete ، از ماسک فیلد پشتیبانی می‌کنند. برای متدهای create ، get و list ، می‌توانید از پارامتر fields در SystemParameterContext برای مشخص کردن فیلدهایی که باید برگردانده شوند استفاده کنید. وقتی پارامتر fields را حذف می‌کنید، پاسخ API به طور پیش‌فرض "name,email,role,user" است. برای متدهای patch و batchUpdate ، از updateMask برای مشخص کردن فیلدهایی که باید تغییر کنند استفاده می‌کنید.

  • استفاده از FieldMask: FieldMask راهی است که فراخوانی‌کنندگان API می‌توانند فیلدهایی را که یک درخواست باید برگرداند یا تغییر دهد، فهرست کنند. این یک لیست جدا شده با کاما از فیلدها است که مشخص می‌کند فقط فیلدهای خاصی در یک شیء استفاده می‌شوند و سایر فیلدها بدون تغییر باقی می‌مانند. استفاده از FieldMask به API اجازه می‌دهد تا از کار غیرضروری جلوگیری کند و عملکرد را بهبود بخشد. برای اطلاعات بیشتر در مورد ماسک‌های فیلد، به بخش Use field masks از API گوگل شیت مراجعه کنید.

ایجاد عضو

برای افزودن یک عضو به فضای جلسه، از متد create در منبع spaces.members استفاده کنید.

نمونه کد زیر نحوه ایجاد یک عضو را نشان می‌دهد:

جاوا

import com.google.apps.meet.v2.Member;
import com.google.apps.meet.v2.SpacesServiceClient;

public class CreateMember {
  public static void main(String[] args) throws Exception {
    try (SpacesServiceClient client = SpacesServiceClient.create()) {
      Member member = Member.newBuilder()
          .setEmail("user@example.com")
          .setRole(Member.Role.COHOST)
          .build();
      Member response = client.createMember("spaces/SPACE_NAME", member);
      System.out.println("Member created: " + response.getName());
    }
  }
}

نود جی اس

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

async function createMember(spaceName, email) {
  const client = new SpacesServiceClient();
  const [response] = await client.createMember({
    parent: spaceName,
    member: {
      email: email,
      role: 'COHOST',
    },
  });
  console.log(`Member created: ${response.name}`);
  return response;
}

پایتون

from google.apps import meet_v2

def create_member(space_name, email):
    client = meet_v2.SpacesServiceClient()
    member = meet_v2.Member(
        email=email,
        role=meet_v2.Member.Role.COHOST,
    )
    response = client.create_member(parent=space_name, member=member)
    print(f"Member created: {response.name}")
    return response

اسکریپت برنامه‌ها

function createMember(spaceName, email) {
  const response = UrlFetchApp.fetch(
    `https://meet.googleapis.com/v2/${spaceName}/members`,
    {
      method: 'post',
      contentType: 'application/json',
      headers: {
        Authorization: 'Bearer ' + ScriptApp.getOAuthToken(),
      },
      payload: JSON.stringify({
        email: email,
        role: 'COHOST',
      }),
    }
  );
  const member = JSON.parse(response.getContentText());
  Logger.log('Member created: ' + member.name);
  return member;
}

حلقه

curl -X POST \
  "https://meet.googleapis.com/v2/spaces/SPACE_NAME/members" \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "user@example.com",
    "role": "COHOST"
  }'

ACCESS_TOKEN با توکن دسترسی که دسترسی به API را اعطا می‌کند، جایگزین کنید.

مقدار نام فضا را با شناسه منحصر به فرد تولید شده توسط سرور برای فضای جلسه جایگزین کنید.

دریافت جزئیات مربوط به یک عضو

برای بازیابی جزئیات مربوط به یک عضو خاص، از متد get روی منبع spaces.members استفاده کنید.

نمونه کد زیر نحوه بازیابی یک عضو را نشان می‌دهد:

جاوا

import com.google.apps.meet.v2.Member;
import com.google.apps.meet.v2.SpacesServiceClient;

public class GetMember {
  public static void main(String[] args) throws Exception {
    try (SpacesServiceClient client = SpacesServiceClient.create()) {
      Member response =
          client.getMember("spaces/SPACE_NAME/members/MEMBER_NAME");
      System.out.println("Member role: " + response.getRole());
    }
  }
}

نود جی اس

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

async function getMember(memberName) {
  const client = new SpacesServiceClient();
  const [response] = await client.getMember({name: memberName});
  console.log(`Member role: ${response.role}`);
  return response;
}

پایتون

from google.apps import meet_v2

def get_member(member_name):
    client = meet_v2.SpacesServiceClient()
    response = client.get_member(name=member_name)
    print(f"Member role: {response.role.name}")
    return response

اسکریپت برنامه‌ها

function getMember(memberName) {
  // memberName format: "spaces/{space}/members/{member}"
  const response = UrlFetchApp.fetch(
    `https://meet.googleapis.com/v2/${memberName}`,
    {
      method: 'get',
      headers: {
        Authorization: 'Bearer ' + ScriptApp.getOAuthToken(),
      },
    }
  );
  const member = JSON.parse(response.getContentText());
  Logger.log('Member role: ' + member.role);
  return member;
}

حلقه

curl -X GET \
  "https://meet.googleapis.com/v2/spaces/SPACE_NAME/members/MEMBER_NAME" \
  -H "Authorization: Bearer ACCESS_TOKEN"

ACCESS_TOKEN با توکن دسترسی که دسترسی به API را اعطا می‌کند، جایگزین کنید.

مقادیر نام فضا و نام عضو را با شناسه‌های منحصر به فرد تولید شده توسط سرور برای فضای جلسه و عضو جایگزین کنید.

اعضا را فهرست کنید

برای فهرست کردن تمام اعضای حاضر در یک فضای جلسه، از متد list در منبع spaces.members استفاده کنید.

نمونه کد زیر نحوه لیست کردن اعضا را نشان می‌دهد:

جاوا

import com.google.apps.meet.v2.Member;
import com.google.apps.meet.v2.SpacesServiceClient;

public class ListMembers {
  public static void main(String[] args) throws Exception {
    try (SpacesServiceClient client = SpacesServiceClient.create()) {
      for (Member member :
          client.listMembers("spaces/SPACE_NAME").iterateAll()) {
        System.out.println("Member: " + member.getName() + " (" +
            member.getEmail() + ")");
      }
    }
  }
}

نود جی اس

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

async function listMembers(spaceName) {
  const client = new SpacesServiceClient();
  const [members] = await client.listMembers({parent: spaceName});
  members.forEach((member) => {
    console.log(`Member: ${member.name} (${member.email})`);
  });
  return members;
}

پایتون

from google.apps import meet_v2

def list_members(space_name):
    client = meet_v2.SpacesServiceClient()
    response = client.list_members(parent=space_name)
    for member in response:
        print(f"Member: {member.name} ({member.email})")

اسکریپت برنامه‌ها

function listMembers(spaceName) {
  const response = UrlFetchApp.fetch(
    `https://meet.googleapis.com/v2/${spaceName}/members`,
    {
      method: 'get',
      headers: {
        Authorization: 'Bearer ' + ScriptApp.getOAuthToken(),
      },
    }
  );
  const data = JSON.parse(response.getContentText());
  (data.members || []).forEach((member) => {
    Logger.log(`Member: ${member.name} (${member.email})`);
  });
  return data.members;
}

حلقه

curl -X GET \
  "https://meet.googleapis.com/v2/spaces/SPACE_NAME/members" \
  -H "Authorization: Bearer ACCESS_TOKEN"

ACCESS_TOKEN با توکن دسترسی که دسترسی به API را اعطا می‌کند، جایگزین کنید.

مقدار نام فضا را با شناسه منحصر به فرد تولید شده توسط سرور برای فضای جلسه جایگزین کنید.

به‌روزرسانی یک عضو

برای به‌روزرسانی نقش یک عضو در فضای جلسه، از متد patch روی منبع spaces.members استفاده کنید.

نمونه کد زیر نحوه به‌روزرسانی یک عضو را نشان می‌دهد:

جاوا

import com.google.apps.meet.v2.Member;
import com.google.apps.meet.v2.SpacesServiceClient;
import com.google.protobuf.FieldMask;

public class UpdateMember {
  public static void main(String[] args) throws Exception {
    try (SpacesServiceClient client = SpacesServiceClient.create()) {
      Member member = Member.newBuilder()
          .setName("spaces/SPACE_NAME/members/MEMBER_NAME")
          .setRole(Member.Role.ROLE_UNSPECIFIED)
          .build();
      FieldMask updateMask =
          FieldMask.newBuilder().addPaths("role").build();
      Member response = client.updateMember(member, updateMask);
      System.out.println("Updated member: " + response.getName());
    }
  }
}

نود جی اس

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

async function updateMember(memberName) {
  const client = new SpacesServiceClient();
  const [response] = await client.updateMember({
    member: {
      name: memberName,
      role: 'ROLE_UNSPECIFIED',
    },
    updateMask: {
      paths: ['role'],
    },
  });
  console.log(`Updated member: ${response.name}`);
  return response;
}

پایتون

from google.apps import meet_v2
from google.protobuf import field_mask_pb2

def update_member(member_name):
    client = meet_v2.SpacesServiceClient()
    member = meet_v2.Member(
        name=member_name,
        role=meet_v2.Member.Role.ROLE_UNSPECIFIED,
    )
    update_mask = field_mask_pb2.FieldMask(paths=["role"])
    response = client.update_member(member=member, update_mask=update_mask)
    print(f"Updated member: {response.name}")
    return response

اسکریپت برنامه‌ها

function updateMember(memberName) {
  // memberName format: "spaces/{space}/members/{member}"
  const baseUrl = 'https://meet.googleapis.com/v2/';
  const url = `${baseUrl}${memberName}?updateMask=role`;
  const response = UrlFetchApp.fetch(url, {
    method: 'patch',
    contentType: 'application/json',
    headers: {
      Authorization: 'Bearer ' + ScriptApp.getOAuthToken(),
    },
    payload: JSON.stringify({
      role: 'ROLE_UNSPECIFIED',
    }),
  });
  const member = JSON.parse(response.getContentText());
  Logger.log('Updated member: ' + member.name);
  return member;
}

حلقه

curl -X PATCH \
  "https://meet.googleapis.com/v2/spaces/SPACE_NAME/members/MEMBER_NAME?updateMask=role" \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "role": "ROLE_UNSPECIFIED"
  }'

ACCESS_TOKEN با توکن دسترسی که دسترسی به API را اعطا می‌کند، جایگزین کنید.

مقادیر نام فضا و نام عضو را با شناسه‌های منحصر به فرد تولید شده توسط سرور برای فضای جلسه و عضو جایگزین کنید.

به‌روزرسانی دسته‌ای اعضا

برای به‌روزرسانی نقش‌های چندین عضو در یک درخواست واحد، از متد batchUpdate روی منبع spaces.members استفاده کنید.

نمونه کد زیر نحوه به‌روزرسانی دسته‌ای اعضا را نشان می‌دهد:

جاوا

import com.google.apps.meet.v2.BatchUpdateMembersRequest;
import com.google.apps.meet.v2.BatchUpdateMembersResponse;
import com.google.apps.meet.v2.Member;
import com.google.apps.meet.v2.SpacesServiceClient;
import com.google.apps.meet.v2.UpdateMemberRequest;
import com.google.protobuf.FieldMask;
import java.util.Arrays;

public class BatchUpdateMembers {
  public static void main(String[] args) throws Exception {
    try (SpacesServiceClient client = SpacesServiceClient.create()) {
      UpdateMemberRequest req1 = UpdateMemberRequest.newBuilder()
          .setMember(Member.newBuilder()
              .setName("spaces/SPACE_NAME/members/MEMBER_1")
              .setRole(Member.Role.COHOST)
              .build())
          .build();
      UpdateMemberRequest req2 = UpdateMemberRequest.newBuilder()
          .setMember(Member.newBuilder()
              .setName("spaces/SPACE_NAME/members/MEMBER_2")
              .setRole(Member.Role.ROLE_UNSPECIFIED)
              .build())
          .build();
      BatchUpdateMembersRequest request =
          BatchUpdateMembersRequest.newBuilder()
              .setParent("spaces/SPACE_NAME")
              .addAllRequests(Arrays.asList(req1, req2))
              .setUpdateMask(
                  FieldMask.newBuilder().addPaths("role").build())
              .build();
      BatchUpdateMembersResponse response =
          client.batchUpdateMembers(request);
      System.out.println(
          "Updated " + response.getMembersCount() + " members.");
    }
  }
}

نود جی اس

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

async function batchUpdateMembers(spaceName, member1, member2) {
  const client = new SpacesServiceClient();
  const [response] = await client.batchUpdateMembers({
    parent: spaceName,
    requests: [
      {
        member: {name: member1, role: 'COHOST'},
      },
      {
        member: {name: member2, role: 'ROLE_UNSPECIFIED'},
      },
    ],
    updateMask: {
      paths: ['role'],
    },
  });
  console.log(`Updated ${response.members.length} members.`);
  return response;
}

پایتون

from google.apps import meet_v2
from google.protobuf import field_mask_pb2

def batch_update_members(space_name, member_1, member_2):
    client = meet_v2.SpacesServiceClient()
    requests = [
        meet_v2.UpdateMemberRequest(
            member=meet_v2.Member(
                name=member_1, role=meet_v2.Member.Role.COHOST
            )
        ),
        meet_v2.UpdateMemberRequest(
            member=meet_v2.Member(
                name=member_2, role=meet_v2.Member.Role.ROLE_UNSPECIFIED
            )
        ),
    ]
    update_mask = field_mask_pb2.FieldMask(paths=["role"])
    response = client.batch_update_members(
        parent=space_name, requests=requests, update_mask=update_mask
    )
    print(f"Updated {len(response.members)} members.")
    return response

اسکریپت برنامه‌ها

function batchUpdateMembers(spaceName, member1, member2) {
  const url =
      `https://meet.googleapis.com/v2/${spaceName}/members:batchUpdate`;
  const response = UrlFetchApp.fetch(url, {
    method: 'post',
    contentType: 'application/json',
    headers: {
      Authorization: 'Bearer ' + ScriptApp.getOAuthToken(),
    },
    payload: JSON.stringify({
      requests: [
        {member: {name: member1, role: 'COHOST'}},
        {member: {name: member2, role: 'ROLE_UNSPECIFIED'}},
      ],
      updateMask: 'role',
    }),
  });
  const data = JSON.parse(response.getContentText());
  Logger.log(`Updated ${data.members.length} members.`);
  return data.members;
}

حلقه

curl -X POST \
  "https://meet.googleapis.com/v2/spaces/SPACE_NAME/members:batchUpdate" \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "requests": [
      {
        "member": {
          "name": "spaces/SPACE_NAME/members/MEMBER_1",
          "role": "COHOST"
        }
      },
      {
        "member": {
          "name": "spaces/SPACE_NAME/members/MEMBER_2",
          "role": "ROLE_UNSPECIFIED"
        }
      }
    ],
    "updateMask": "role"
  }'

ACCESS_TOKEN با توکن دسترسی که دسترسی به API را اعطا می‌کند، جایگزین کنید.

مقادیر نام فضا و نام عضو را با شناسه‌های منحصر به فرد تولید شده توسط سرور برای فضای جلسه و اعضا جایگزین کنید.

حذف یک عضو

برای حذف یک عضو از فضای جلسه، از متد delete روی منبع spaces.members استفاده کنید.

نمونه کد زیر نحوه حذف یک عضو را نشان می‌دهد:

جاوا

import com.google.apps.meet.v2.SpacesServiceClient;

public class DeleteMember {
  public static void main(String[] args) throws Exception {
    try (SpacesServiceClient client = SpacesServiceClient.create()) {
      client.deleteMember("spaces/SPACE_NAME/members/MEMBER_NAME");
      System.out.println("Member deleted.");
    }
  }
}

نود جی اس

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

async function deleteMember(memberName) {
  const client = new SpacesServiceClient();
  await client.deleteMember({name: memberName});
  console.log('Member deleted.');
}

پایتون

from google.apps import meet_v2

def delete_member(member_name):
    client = meet_v2.SpacesServiceClient()
    client.delete_member(name=member_name)
    print("Member deleted.")

اسکریپت برنامه‌ها

function deleteMember(memberName) {
  // memberName format: "spaces/{space}/members/{member}"
  UrlFetchApp.fetch(`https://meet.googleapis.com/v2/${memberName}`, {
    method: 'delete',
    headers: {
      Authorization: 'Bearer ' + ScriptApp.getOAuthToken(),
    },
  });
  Logger.log('Member deleted.');
}

حلقه

curl -X DELETE \
  "https://meet.googleapis.com/v2/spaces/SPACE_NAME/members/MEMBER_NAME" \
  -H "Authorization: Bearer ACCESS_TOKEN"

ACCESS_TOKEN با توکن دسترسی که دسترسی به API را اعطا می‌کند، جایگزین کنید.

مقادیر نام فضا و نام عضو را با شناسه‌های منحصر به فرد تولید شده توسط سرور برای فضای جلسه و عضو جایگزین کنید.