عضو مساحة الاجتماع هو مستخدم تم إعداده ليكون له دور في مساحة الاجتماع. يمكن لهؤلاء المستخدمين الانضمام إلى مساحة الاجتماع بدون طلب إذن بالاتصال (المعروف أيضًا باسم "الاستئذان").
في حين يمكن لمنظّمي الاجتماع الدخول تلقائيًا إلى مساحة الاجتماع، يمكنك أيضًا ضبط أعضاء إضافيين في مساحة الاجتماع للانضمام إلى الاجتماع بدون استئذان.
بالإضافة إلى ذلك، يمكن ضبط الأعضاء للحصول على
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، سيتم تلقائيًا ضبط استجابة واجهة برمجة التطبيقات على"name,email,role,user". بالنسبة إلى الطريقتَينpatchوbatchUpdate، يمكنك استخدامupdateMaskلتحديد الحقول التي تريد تغييرها.استخدام FieldMask:
FieldMaskهي طريقة تتيح لمقدّمي الطلبات إلى واجهة برمجة التطبيقات إدراج الحقول التي يجب أن يعرضها الطلب أو يعدّلها. وهي قائمة حقول مفصولة بفواصل لتحديد حقول معيّنة فقط في أحد العناصر مع ترك الحقول الأخرى بدون تغيير. يسمح استخدامFieldMaskلواجهة برمجة التطبيقات بتجنُّب العمل غير الضروري وتحسين الأداء. لمزيد من المعلومات حول أقنعة الحقول، يُرجى الاطّلاع على مقالة استخدام أقنعة الحقول في واجهة برمجة التطبيقات Google Sheets 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());
}
}
}
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
برمجة التطبيقات
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 برمز الدخول الذي يمنح إذن الوصول إلى واجهة برمجة التطبيقات.
استبدِل قيمة اسم المساحة بمعرّف فريد من إنشاء الخادم لمساحة الاجتماع.
الحصول على تفاصيل حول أحد الأعضاء
لاسترداد تفاصيل حول عضو معيّن، استخدِم طريقة
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());
}
}
}
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
برمجة التطبيقات
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 برمز الدخول الذي يمنح إذن الوصول إلى واجهة برمجة التطبيقات.
استبدِل قيم اسم المساحة واسم العضو بمعرّفات فريدة من إنشاء الخادم لمساحة الاجتماع والعضو.
أعضاء القائمة
لعرض قائمة بجميع الأعضاء في مساحة اجتماع، استخدِم طريقة
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() + ")");
}
}
}
}
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})")
برمجة التطبيقات
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 برمز الدخول الذي يمنح إذن الوصول إلى واجهة برمجة التطبيقات.
استبدِل قيمة اسم المساحة بمعرّف فريد من إنشاء الخادم لمساحة الاجتماع.
تعديل عضو
لتعديل دور أحد الأعضاء في مساحة اجتماع، استخدِم طريقة
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());
}
}
}
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
برمجة التطبيقات
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 برمز الدخول الذي يمنح إذن الوصول إلى واجهة برمجة التطبيقات.
استبدِل قيم اسم المساحة واسم العضو بمعرّفات فريدة من إنشاء الخادم لمساحة الاجتماع والعضو.
تعديل الأعضاء بشكل مجمّع
لتعديل أدوار عدة أعضاء في طلب واحد، استخدِم طريقة
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.");
}
}
}
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
برمجة التطبيقات
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 برمز الدخول الذي يمنح إذن الوصول إلى واجهة برمجة التطبيقات.
استبدِل قيم اسم المساحة واسم العضو بمعرّفات فريدة من إنشاء الخادم لمساحة الاجتماع والأعضاء.
حذف عضو
لإزالة مستخدم من مساحة اجتماع، استخدِم طريقة
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.");
}
}
}
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.")
برمجة التطبيقات
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 برمز الدخول الذي يمنح إذن الوصول إلى واجهة برمجة التطبيقات.
استبدِل قيم اسم المساحة واسم العضو بمعرّفات فريدة من إنشاء الخادم لمساحة الاجتماع والعضو.