จัดการสมาชิกในพื้นที่การประชุม

สมาชิกพื้นที่การประชุมคือผู้ใช้ที่ได้รับการกำหนดค่าให้มีบทบาทในพื้นที่การประชุม ผู้ใช้เหล่านี้จะเข้าร่วมพื้นที่การประชุมได้โดยไม่ต้องขอสิทธิ์ในการ เชื่อมต่อ (หรือที่เรียกว่า "การเคาะ")

แม้ว่าผู้จัดการประชุมจะเข้าสู่พื้นที่การประชุมได้โดยอัตโนมัติ แต่คุณก็ยัง กำหนดค่าให้สมาชิกคนอื่นๆ ในพื้นที่การประชุมเข้าร่วมการประชุมได้โดยไม่ต้องขอเข้าร่วม นอกจากนี้ คุณยังกำหนดค่าให้สมาชิกมี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: A FieldMask เป็นวิธีที่ผู้เรียกใช้ API ใช้เพื่อแสดงรายการฟิลด์ที่คำขอควรส่งคืนหรือแก้ไข เป็นรายการฟิลด์ที่คั่นด้วยคอมมาเพื่อระบุว่าใช้เฉพาะบางฟิลด์ในออบเจ็กต์เท่านั้นในขณะที่ฟิลด์อื่นๆ ไม่มีการเปลี่ยนแปลง การใช้ FieldMask ช่วยให้ API ไม่ต้องทำงานที่ไม่จำเป็นและปรับปรุง ประสิทธิภาพ ดูข้อมูลเพิ่มเติมเกี่ยวกับมาสก์ฟิลด์ได้ที่ใช้มาสก์ฟิลด์ของ Google Sheets API

สร้างสมาชิก

หากต้องการเพิ่มสมาชิกไปยังพื้นที่การประชุม ให้ใช้เมธอด create ในทรัพยากร spaces.members

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีสร้างสมาชิก

Java

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());
    }
  }
}

Node.js

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;
}

Python

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

Apps Script

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

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

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีดึงข้อมูลสมาชิก

Java

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());
    }
  }
}

Node.js

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;
}

Python

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

Apps Script

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

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

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีแสดงรายการสมาชิก

Java

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() + ")");
      }
    }
  }
}

Node.js

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;
}

Python

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})")

Apps Script

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

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

แทนที่ ACCESS_TOKEN ด้วยโทเค็นเพื่อการเข้าถึงที่ให้สิทธิ์เข้าถึง API

แทนที่ค่าชื่อพื้นที่ทำงานด้วยรหัสที่เซิร์ฟเวอร์สร้างขึ้นที่ไม่ซ้ำกันสำหรับพื้นที่ทำงาน การประชุม

อัปเดตสมาชิก

หากต้องการอัปเดตบทบาทของสมาชิกในพื้นที่การประชุม ให้ใช้วิธีการ patch ในแหล่งข้อมูล spaces.members

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีอัปเดตสมาชิก

Java

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());
    }
  }
}

Node.js

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;
}

Python

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

Apps Script

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

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

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีอัปเดตสมาชิกแบบเป็นกลุ่ม

Java

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.");
    }
  }
}

Node.js

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;
}

Python

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

Apps Script

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

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

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีลบสมาชิก

Java

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.");
    }
  }
}

Node.js

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

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

Python

from google.apps import meet_v2

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

Apps Script

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

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

แทนที่ ACCESS_TOKEN ด้วยโทเค็นเพื่อการเข้าถึงที่ให้สิทธิ์เข้าถึง API

แทนที่ค่าชื่อพื้นที่ทำงานและชื่อสมาชิกด้วยรหัสที่เซิร์ฟเวอร์สร้างขึ้นซึ่งไม่ซ้ำกัน สำหรับพื้นที่ทำงานการประชุมและสมาชิก