Mitglieder von Konferenzräumen verwalten

Ein Konferenzraummitglied ist ein Nutzer, der für eine Rolle im Konferenzraum konfiguriert ist. Diese Nutzer können dem Konferenzraum beitreten, ohne eine Verbindungsanfrage stellen zu müssen (auch als „Anklopfen“ bezeichnet).

Videokonferenzorganisatoren können den Videokonferenzbereich automatisch betreten. Sie können aber auch festlegen, dass weitere Mitglieder des Videokonferenzbereichs ohne Anklopfen an der Videokonferenz teilnehmen dürfen. Außerdem können Mitglieder so konfiguriert werden, dass sie eine Role in der Besprechung haben, z. B. COHOST. Dadurch können sie die Besprechung während einer Konferenz gemeinsam verwalten, aber keine automatischen Artefakte konfigurieren oder Moderationseinstellungen ändern. Weitere Informationen zum Zugriff auf einen Konferenzraum ohne Anklopfen finden Sie unter AccessType.

Die Ressource spaces.members enthält die Felder name, email und role.

Ein Mitglied eines Besprechungsbereichs ist nicht dasselbe wie ein Teilnehmer. Ein Teilnehmer ist eine Person, die an einem Anruf teilnimmt oder den Companion-Modus verwendet, als Zuschauer teilnimmt oder ein Raumgerät, das mit einem Anruf verbunden ist. Es gibt eine conferenceRecords.participants-Ressource für jede Person.

Häufige Methodenverhaltensweisen

Wenn Sie Mitglieder von Besprechungsräumen mit der Meet REST API verwalten, gelten für die Methoden die folgenden Konventionen:

  • Pfadparameter:Für jede Methode wird ein Pfadparameter verwendet. Bei den Methoden create, list und batchUpdate wird das Feld parent verwendet, um auf den Konferenzraum (spaces/{space}) zu verweisen. Bei den Methoden delete, get und patch wird das Feld name verwendet, um Ergebnisse nach Konferenzraum und Mitgliedsname (spaces/{space}/members/{member}) zu filtern.

  • Rückgabetypen:Die Methoden create, get und patch geben eine Instanz der Ressource Member zurück. Die Methoden list und batchUpdate geben eine Liste von Member-Ressourcen zurück (delete gibt einen leeren Antworttext zurück).

  • Feldmasken:Alle Methoden außer delete unterstützen eine Feldmaske. Für die Methoden create, get und list können Sie mit dem Parameter fields in SystemParameterContext angeben, welche Felder zurückgegeben werden sollen. Wenn Sie den Parameter fields weglassen, wird in der API-Antwort standardmäßig "name,email,role,user" zurückgegeben. Bei den Methoden patch und batchUpdate geben Sie mit einem updateMask an, welche Felder geändert werden sollen.

  • FieldMask verwenden:Eine FieldMask ist eine Möglichkeit für API-Aufrufer, Felder aufzulisten, die in einer Anfrage zurückgegeben oder geändert werden sollen. Es handelt sich um eine durch Kommas getrennte Liste von Feldern, mit der Sie festlegen können, dass nur bestimmte Felder in einem Objekt verwendet werden, während die anderen Felder unverändert bleiben. Durch die Verwendung eines FieldMask kann die API unnötige Arbeit vermeiden und die Leistung verbessern. Weitere Informationen zu Feldmasken finden Sie unter Feldmasken verwenden in der Google Sheets API.

Mitglied erstellen

Verwenden Sie die Methode create für die Ressource spaces.members, um einem Konferenzraum ein Mitglied hinzuzufügen.

Das folgende Codebeispiel zeigt, wie ein Mitglied erstellt wird:

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

Ersetzen Sie ACCESS_TOKEN durch das Zugriffstoken, das Zugriff auf die API gewährt.

Ersetzen Sie den Wert für den Namen des Bereichs durch die eindeutige, vom Server generierte ID für den Besprechungsbereich.

Details zu einem Mitglied abrufen

Wenn Sie Details zu einem bestimmten Mitglied abrufen möchten, verwenden Sie die Methode get für die Ressource spaces.members.

Das folgende Codebeispiel zeigt, wie Sie ein Mitglied abrufen:

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"

Ersetzen Sie ACCESS_TOKEN durch das Zugriffstoken, das Zugriff auf die API gewährt.

Ersetzen Sie die Werte für den Konferenzraum- und Mitgliedernamen durch die eindeutigen, vom Server generierten IDs für den Konferenzraum und das Mitglied.

Listenmitglieder

Verwenden Sie die Methode list für die Ressource spaces.members, um alle Mitglieder in einem Konferenzraum aufzulisten.

Das folgende Codebeispiel zeigt, wie Sie Mitglieder auflisten:

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"

Ersetzen Sie ACCESS_TOKEN durch das Zugriffstoken, das Zugriff auf die API gewährt.

Ersetzen Sie den Wert für den Namen des Bereichs durch die eindeutige, vom Server generierte ID für den Besprechungsbereich.

Mitglied aktualisieren

Verwenden Sie die Methode patch für die Ressource spaces.members, um die Rolle eines Mitglieds in einem Konferenzraum zu aktualisieren.

Das folgende Codebeispiel zeigt, wie Sie ein Mitglied aktualisieren:

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

Ersetzen Sie ACCESS_TOKEN durch das Zugriffstoken, das Zugriff auf die API gewährt.

Ersetzen Sie die Werte für den Konferenzraum- und Mitgliedernamen durch die eindeutigen, vom Server generierten IDs für den Konferenzraum und das Mitglied.

Mitglieder per Batch-Update aktualisieren

Wenn Sie die Rollen mehrerer Mitglieder in einer einzigen Anfrage aktualisieren möchten, verwenden Sie die Methode batchUpdate für die Ressource spaces.members.

Das folgende Codebeispiel zeigt, wie Mitglieder im Batch aktualisiert werden:

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

Ersetzen Sie ACCESS_TOKEN durch das Zugriffstoken, das Zugriff auf die API gewährt.

Ersetzen Sie die Werte für den Bereichsnamen und den Mitgliedernamen durch die eindeutigen, vom Server generierten IDs für den Konferenzraum und die Mitglieder.

Mitglied löschen

Wenn Sie ein Mitglied aus einem Konferenzraum entfernen möchten, verwenden Sie die Methode delete für die Ressource spaces.members.

Im folgenden Codebeispiel wird gezeigt, wie ein Mitglied gelöscht wird:

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"

Ersetzen Sie ACCESS_TOKEN durch das Zugriffstoken, das Zugriff auf die API gewährt.

Ersetzen Sie die Werte für den Konferenzraum- und Mitgliedernamen durch die eindeutigen, vom Server generierten IDs für den Konferenzraum und das Mitglied.