মিটিং স্পেসের সদস্য হলেন এমন একজন ব্যবহারকারী, যাঁকে মিটিং স্পেসে একটি ভূমিকা পালনের জন্য কনফিগার করা হয়েছে। এই ব্যবহারকারীরা সংযোগ করার অনুমতি না চেয়েই (যা 'নকিং' নামেও পরিচিত) মিটিং স্পেসে যোগদান করতে পারেন।
মিটিং আয়োজকরা স্বয়ংক্রিয়ভাবে মিটিং স্পেসে প্রবেশ করতে পারলেও, আপনি অতিরিক্ত সদস্যদের নক না করেই মিটিংয়ে যোগদানের জন্য কনফিগার করতে পারেন। এছাড়াও, সদস্যদের মিটিংয়ে একটি Role দেওয়া যেতে পারে, যেমন COHOST , যা তাদের একটি কনফারেন্স চলাকালীন মিটিংটি সহ-পরিচালনা করার অনুমতি দেয়, যদিও তারা স্বয়ংক্রিয় আর্টিফ্যাক্ট কনফিগার করতে বা মডারেশন সেটিংস পরিবর্তন করতে পারে না। নক না করে মিটিং স্পেসে প্রবেশ করার বিষয়ে আরও তথ্যের জন্য, AccessType দেখুন।
spaces.members রিসোর্সটিতে name , email এবং role ক্ষেত্রগুলো অন্তর্ভুক্ত রয়েছে।
মনে রাখবেন যে, মিটিং স্পেসের সদস্য একজন অংশগ্রহণকারী থেকে ভিন্ন। একজন অংশগ্রহণকারী হলেন এমন একজন ব্যক্তি যিনি কোনো কলে যোগদান করেছেন অথবা যিনি কম্প্যানিয়ন মোড ব্যবহার করেন, দর্শক হিসেবে দেখছেন, বা কলের সাথে সংযুক্ত একটি রুম ডিভাইস। প্রত্যেক ব্যক্তির জন্য একটি করে conferenceRecords.participants রিসোর্স থাকে।
সাধারণ পদ্ধতির আচরণ
Meet REST API ব্যবহার করে মিটিং স্পেসের সদস্যদের পরিচালনা করার সময়, মেথডগুলো নিম্নলিখিত নিয়মগুলো মেনে চলে:
পাথ প্যারামিটার: প্রতিটি মেথড একটি পাথ প্যারামিটার ব্যবহার করে।
create,list, এবংbatchUpdateমেথডগুলো মিটিং স্পেসকে (spaces/{space}) নির্দেশ করার জন্যparentফিল্ড ব্যবহার করে।delete,get, এবংpatchমেথডগুলো মিটিং স্পেস এবং সদস্যের নাম অনুসারে ফলাফল ফিল্টার করার জন্যnameফিল্ড ব্যবহার করে (spaces/{space}/members/{member})।রিটার্ন টাইপ:
create,get, এবংpatchমেথডগুলোMemberরিসোর্সের একটি ইনস্ট্যান্স রিটার্ন করে।listএবংbatchUpdateমেথডগুলোMemberরিসোর্সগুলোর একটি তালিকা রিটার্ন করে (deleteএকটি খালি রেসপন্স বডি রিটার্ন করে)।ফিল্ড মাস্ক:
deleteমেথডটি ছাড়া বাকি সব মেথডই ফিল্ড মাস্ক সাপোর্ট করে।create,get, এবংlistমেথডগুলোর জন্য, কোন ফিল্ডগুলো রিটার্ন করা হবে তা নির্দিষ্ট করতে আপনি SystemParameterContext- এfieldsপ্যারামিটারটি ব্যবহার করতে পারেন। আপনি যখনfieldsপ্যারামিটারটি বাদ দেন, তখন API রেসপন্স ডিফল্টভাবে"name,email,role,user"হিসেবে আসে।patchএবংbatchUpdateমেথডগুলোর জন্য, কোন ফিল্ডগুলো পরিবর্তন করতে হবে তা নির্দিষ্ট করতে আপনি একটিupdateMaskব্যবহার করেন।ফিল্ডমাস্ক ব্যবহার:
FieldMaskহলো এপিআই ব্যবহারকারীদের জন্য একটি উপায়, যার মাধ্যমে কোনো অনুরোধ কোন ফিল্ডগুলো ফেরত দেবে বা পরিবর্তন করবে তার একটি তালিকা তৈরি করা যায়। এটি কমা দ্বারা বিভক্ত ফিল্ডের একটি তালিকা, যা নির্দিষ্ট করে যে একটি অবজেক্টের শুধুমাত্র নির্দিষ্ট কিছু ফিল্ড ব্যবহৃত হবে এবং বাকি ফিল্ডগুলো অপরিবর্তিত থাকবে।FieldMaskব্যবহার করলে এপিআই অপ্রয়োজনীয় কাজ এড়াতে পারে এবং এর পারফরম্যান্স উন্নত হয়। ফিল্ডমাস্ক সম্পর্কে আরও তথ্যের জন্য, গুগল শিটস এপিআই-এর 'Use field masks' অংশটি দেখুন।
একজন সদস্য তৈরি করুন
মিটিং স্পেসে কোনো সদস্য যোগ করতে, spaces.members রিসোর্সের create মেথডটি ব্যবহার করুন।
নিম্নলিখিত কোড নমুনাটি দেখায় কিভাবে একজন সদস্য তৈরি করতে হয়:
জাভা
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());
}
}
}
নোড.জেএস
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;
}
পাইথন
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 পরিবর্তে সেই অ্যাক্সেস টোকেনটি ব্যবহার করুন যা API-তে অ্যাক্সেস প্রদান করে।
মিটিং স্পেসের জন্য সার্ভার-জেনারেটেড অনন্য আইডি দিয়ে স্পেস নেমের মানটি প্রতিস্থাপন করুন।
একজন সদস্য সম্পর্কে বিস্তারিত জানুন
কোনো নির্দিষ্ট সদস্যের বিবরণ জানতে, spaces.members রিসোর্সের get মেথডটি ব্যবহার করুন।
নিম্নলিখিত কোড নমুনাটি দেখায় কিভাবে একজন সদস্যকে পুনরুদ্ধার করতে হয়:
জাভা
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());
}
}
}
নোড.জেএস
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;
}
পাইথন
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 পরিবর্তে সেই অ্যাক্সেস টোকেনটি ব্যবহার করুন যা API-তে অ্যাক্সেস প্রদান করে।
মিটিং স্পেস এবং সদস্যের জন্য সার্ভার-জেনারেটেড অনন্য আইডিগুলো দিয়ে স্পেসের নাম এবং সদস্যের নামের মানগুলো প্রতিস্থাপন করুন।
সদস্যদের তালিকা
একটি মিটিং স্পেসের সকল সদস্যের তালিকা পেতে, spaces.members রিসোর্সের list মেথডটি ব্যবহার করুন।
নিম্নলিখিত কোড নমুনাটি দেখায় কিভাবে সদস্যদের তালিকাভুক্ত করতে হয়:
জাভা
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() + ")");
}
}
}
}
নোড.জেএস
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;
}
পাইথন
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 পরিবর্তে সেই অ্যাক্সেস টোকেনটি ব্যবহার করুন যা API-তে অ্যাক্সেস প্রদান করে।
মিটিং স্পেসের জন্য সার্ভার-জেনারেটেড অনন্য আইডি দিয়ে স্পেস নেমের মানটি প্রতিস্থাপন করুন।
একজন সদস্যকে আপডেট করুন
মিটিং স্পেসে কোনো সদস্যের ভূমিকা আপডেট করতে, spaces.members রিসোর্সের উপর patch মেথডটি ব্যবহার করুন।
নিম্নলিখিত কোড নমুনাটি দেখায় কিভাবে একটি মেম্বার আপডেট করতে হয়:
জাভা
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());
}
}
}
নোড.জেএস
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;
}
পাইথন
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 পরিবর্তে সেই অ্যাক্সেস টোকেনটি ব্যবহার করুন যা API-তে অ্যাক্সেস প্রদান করে।
মিটিং স্পেস এবং সদস্যের জন্য সার্ভার-জেনারেটেড অনন্য আইডিগুলো দিয়ে স্পেসের নাম এবং সদস্যের নামের মানগুলো প্রতিস্থাপন করুন।
ব্যাচ আপডেট সদস্যদের
একই অনুরোধে একাধিক সদস্যের ভূমিকা আপডেট করতে, spaces.members রিসোর্সের batchUpdate মেথডটি ব্যবহার করুন।
নিম্নলিখিত কোড নমুনাটি দেখায় কিভাবে সদস্যদের ব্যাচ আপডেট করতে হয়:
জাভা
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.");
}
}
}
নোড.জেএস
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;
}
পাইথন
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 পরিবর্তে সেই অ্যাক্সেস টোকেনটি ব্যবহার করুন যা API-তে অ্যাক্সেস প্রদান করে।
মিটিং স্পেস এবং সদস্যদের জন্য সার্ভার-জেনারেটেড অনন্য আইডিগুলো দিয়ে স্পেসের নাম এবং সদস্যের নামের মানগুলো প্রতিস্থাপন করুন।
একজন সদস্যকে মুছে ফেলুন
মিটিং স্পেস থেকে কোনো সদস্যকে সরাতে, spaces.members রিসোর্সের delete মেথডটি ব্যবহার করুন।
নিম্নলিখিত কোড নমুনাটি দেখায় কিভাবে একজন সদস্যকে মুছে ফেলতে হয়:
জাভা
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.");
}
}
}
নোড.জেএস
const {SpacesServiceClient} = require('@google-apps/meet').v2;
async function deleteMember(memberName) {
const client = new SpacesServiceClient();
await client.deleteMember({name: memberName});
console.log('Member deleted.');
}
পাইথন
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 পরিবর্তে সেই অ্যাক্সেস টোকেনটি ব্যবহার করুন যা API-তে অ্যাক্সেস প্রদান করে।
মিটিং স্পেস এবং সদস্যের জন্য সার্ভার-জেনারেটেড অনন্য আইডিগুলো দিয়ে স্পেসের নাম এবং সদস্যের নামের মানগুলো প্রতিস্থাপন করুন।