Członek pokoju spotkań to użytkownik, który ma przypisaną rolę w pokoju spotkań. Ci użytkownicy mogą dołączyć do pokoju spotkania bez prośby o pozwolenie na połączenie (znanej też jako „pukanie”).
Organizatorzy spotkań mogą automatycznie wchodzić do pokoju spotkań, ale możesz też skonfigurować dodatkowych członków pokoju spotkań, aby mogli dołączać do spotkania bez proszenia o zaakceptowanie.
Dodatkowo można skonfigurować członków tak, aby mieli Role na spotkaniu, np. COHOST, co pozwala im współzarządzać spotkaniem podczas konferencji, ale nie mogą oni konfigurować automatycznych artefaktów ani zmieniać ustawień moderowania. Więcej informacji o dostępie do pomieszczenia bez pukania znajdziesz w artykule AccessType.
Zasób spaces.members zawiera pola name, email i role.
Pamiętaj, że osoba w pokoju spotkań to nie to samo co uczestnik. Uczestnik to osoba, która dołączyła do rozmowy lub korzysta z trybu towarzyszącego, ogląda spotkanie jako widz lub korzysta z urządzenia w sali połączonego z rozmową. Każda osoba ma 1 zasób
conferenceRecords.participants.
Typowe zachowania metod
Podczas zarządzania członkami przestrzeni spotkań za pomocą interfejsu Meet REST API metody mają następujące konwencje:
Parametry ścieżki: każda metoda używa parametru ścieżki. Metody
create,listibatchUpdateużywają polaparentdo odwoływania się do pokoju spotkań (spaces/{space}). Metodydelete,getipatchużywają polanamedo filtrowania wyników według pokoju spotkań i nazwy użytkownika (spaces/{space}/members/{member}).Typy zwracanych wartości: metody
create,getipatchzwracają instancję zasobuMember. MetodylistibatchUpdatezwracają listę zasobówMember(deletezwraca pustą treść odpowiedzi).Maski pól: wszystkie metody z wyjątkiem
deleteobsługują maskę pola. W przypadku metodcreate,getilistmożesz użyć parametrufieldsw SystemParameterContext, aby określić, które pola mają zostać zwrócone. Jeśli pominiesz parametrfields, odpowiedź interfejsu API będzie miała domyślnie wartość"name,email,role,user". W przypadku metodpatchibatchUpdateużywasz parametruupdateMask, aby określić, które pola chcesz zmienić.Używanie FieldMask: A
FieldMaskto sposób, w jaki elementy wywołujące interfejs API mogą wyświetlać listę pól, które żądanie powinno zwrócić lub zmodyfikować. Jest to lista pól oddzielonych przecinkami, która służy do określania, że tylko niektóre pola w obiekcie mają być używane, a pozostałe mają pozostać bez zmian. UżycieFieldMaskpozwala interfejsowi API uniknąć niepotrzebnej pracy i zwiększa wydajność. Więcej informacji o maskach pól znajdziesz w artykule Używanie masek pól w dokumentacji interfejsu Google Sheets API.
Tworzenie użytkownika
Aby dodać użytkownika do pokoju spotkań, użyj metody
create
w zasobie
spaces.members.
Poniższy przykładowy kod pokazuje, jak utworzyć uczestnika:
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
Google 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"
}'
Zastąp ACCESS_TOKEN tokenem dostępu, który przyznaje dostęp do interfejsu API.
Zastąp wartość nazwy pokoju unikalnym identyfikatorem wygenerowanym przez serwer dla pokoju spotkań.
Wyświetlanie szczegółowych informacji o uczestniku
Aby pobrać szczegółowe informacje o konkretnym członku, użyj metody
get w zasobie
spaces.members.
Poniższy przykładowy kod pokazuje, jak pobrać uczestnika:
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
Google 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"
Zastąp ACCESS_TOKEN tokenem dostępu, który przyznaje dostęp do interfejsu API.
Zastąp wartości nazwy pokoju i nazwy uczestnika unikalnymi identyfikatorami wygenerowanymi przez serwer dla pokoju spotkań i uczestnika.
Członkowie grupy
Aby wyświetlić listę wszystkich użytkowników w pokoju spotkań, użyj metody
list
w zasobie
spaces.members.
Poniższy przykładowy kod pokazuje, jak wyświetlić listę członków:
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})")
Google 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"
Zastąp ACCESS_TOKEN tokenem dostępu, który przyznaje dostęp do interfejsu API.
Zastąp wartość nazwy pokoju unikalnym identyfikatorem wygenerowanym przez serwer dla pokoju spotkań.
Aktualizowanie użytkownika
Aby zaktualizować rolę użytkownika w pokoju spotkań, użyj metody patch w zasobie spaces.members.
Poniższy przykładowy kod pokazuje, jak zaktualizować uczestnika:
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
Google 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"
}'
Zastąp ACCESS_TOKEN tokenem dostępu, który przyznaje dostęp do interfejsu API.
Zastąp wartości nazwy pokoju i nazwy uczestnika unikalnymi identyfikatorami wygenerowanymi przez serwer dla pokoju spotkań i uczestnika.
Aktualizacja zbiorcza członków
Aby zaktualizować role wielu członków w ramach jednej prośby, użyj metody
batchUpdate
w zasobie
spaces.members.
Poniższy przykładowy kod pokazuje, jak zbiorczo aktualizować członków:
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
Google 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"
}'
Zastąp ACCESS_TOKEN tokenem dostępu, który przyznaje dostęp do interfejsu API.
Zastąp wartości nazwy pokoju i nazwy uczestnika unikalnymi identyfikatorami wygenerowanymi przez serwer dla pokoju spotkań i uczestników.
Usuwanie użytkownika
Aby usunąć użytkownika z pokoju spotkań, użyj metody
delete
w zasobie
spaces.members.
Poniższy przykładowy kod pokazuje, jak usunąć uczestnika:
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.")
Google 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"
Zastąp ACCESS_TOKEN tokenem dostępu, który przyznaje dostęp do interfejsu API.
Zastąp wartości nazwy pokoju i nazwy uczestnika unikalnymi identyfikatorami wygenerowanymi przez serwer dla pokoju spotkań i uczestnika.