חבר במרחב לפגישה הוא משתמש שהוגדר לו תפקיד במרחב. המשתמשים האלה יכולים להצטרף למרחב הפגישה בלי לשלוח בקשת הצטרפות (שנקראת גם 'דפיקה בדלת').
מארגני הפגישה יכולים להיכנס אוטומטית למרחב הפגישה, אבל אתם יכולים גם להגדיר שמשתתפים נוספים במרחב הפגישה יוכלו להצטרף לפגישה בלי לשלוח בקשת הצטרפות.
בנוסף, אפשר להגדיר לחברים Role בפגישה, כמו COHOST, כדי שיוכלו לנהל את הפגישה יחד עם המארגן במהלך שיחת ועידה, אבל הם לא יכולים להגדיר יצירה אוטומטית של ארטיפקטים או לשנות את הגדרות הניהול. מידע נוסף על גישה למרחב פגישות בלי לדפוק זמין במאמר AccessType.
המשאב spaces.members כולל את השדות name, email ו-role.
חשוב להבחין בין חבר במרחב הפגישה לבין משתתף. משתתף הוא אדם שהצטרף לשיחה או שמשתמש במצב Companion, צופה כצופה או מכשיר בחדר שמחובר לשיחה. יש משאב אחד
conferenceRecords.participants
לכל אדם.
התנהגויות נפוצות של שיטות
כשמנהלים את חברי המרחב לפגישות באמצעות ה-API בארכיטקטורת REST ב-Meet, יש כמה מוסכמות שמשותפות לכל ה-methods:
פרמטרים של נתיב: כל שיטה משתמשת בפרמטר של נתיב. השיטות
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 להימנע מעבודה מיותרת ולשפר את הביצועים. מידע נוסף על מסכות שדות זמין במאמר בנושא שימוש במסכות שדות ב-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.
מחליפים את הערך של שם המרחב במזהה הייחודי שנוצר על ידי השרת עבור המרחב של הפגישה.
עדכון של חבר
כדי לעדכן את התפקיד של משתמש במרחב לפגישה, משתמשים ב-method 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.
מחליפים את הערכים של שם המרחב ושם המשתתף במזהים הייחודיים שנוצרו על ידי השרת עבור המרחב והמשתתפים.
מחיקת חברים
כדי להסיר משתמש ממרחב פגישה, משתמשים ב-method
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.
מחליפים את הערכים של שם המרחב ושם המשתתף במזהים הייחודיים שנוצרו על ידי השרת עבור המרחב והמשתתף.