Toplantı alanı üyelerini yönetme

Toplantı alanı üyesi, toplantı alanında bir rolü olacak şekilde yapılandırılmış bir kullanıcıdır. Bu kullanıcılar, toplantı alanına bağlanma izni istemeden (diğer adıyla "kapıyı çalmadan") katılabilir.

Toplantıyı düzenleyenler toplantı alanına otomatik olarak girebilir. Ayrıca, ek toplantı alanı üyelerinin katılım isteği göndermeden toplantıya katılmasını da sağlayabilirsiniz. Ayrıca, üyeler toplantıda COHOST gibi �Role olarak yapılandırılabilir. Bu sayede, konferans sırasında toplantıyı birlikte yönetebilirler ancak otomatik yapay içerikleri yapılandıramaz veya moderasyon ayarlarını değiştiremezler. Toplantı alanına kapıyı çalmadan erişme hakkında daha fazla bilgi için AccessType başlıklı makaleyi inceleyin.

spaces.members kaynağı name, email ve role alanlarını içerir.

Toplantı alanı üyesinin katılımcıdan farklı olduğunu unutmayın. Katılımcı, bir görüşmeye katılan veya Tamamlayıcı Mod'u kullanan, izleyici olarak izleyen ya da bir görüşmeye bağlı olan oda cihazıdır. Her kişi için bir conferenceRecords.participants kaynak vardır.

Sık kullanılan yöntem davranışları

Meet REST API'yi kullanarak toplantı alanı üyelerini yönetirken yöntemler aşağıdaki kurallara uyar:

  • Yol parametreleri: Her yöntemde bir yol parametresi kullanılır. create, list ve batchUpdate yöntemlerinde toplantı alanına (spaces/{space}) atıfta bulunmak için parent alanı kullanılır. delete, get ve patch yöntemlerinde ise sonuçları toplantı alanına ve üye adına (spaces/{space}/members/{member}) göre filtrelemek için name alanı kullanılır.

  • Dönüş türleri: create, get ve patch yöntemleri, Member kaynağının bir örneğini döndürür. list ve batchUpdate yöntemleri, Member kaynaklarının listesini döndürür (delete boş bir yanıt gövdesi döndürür).

  • Alan maskeleri: delete dışındaki tüm yöntemler alan maskesini destekler. create, get ve list yöntemleri için, hangi alanların döndürüleceğini belirtmek üzere SystemParameterContext içinde fields parametresini kullanabilirsiniz. fields parametresini atladığınızda API yanıtı varsayılan olarak "name,email,role,user" olur. patch ve batchUpdate yöntemlerinde, hangi alanların değiştirileceğini belirtmek için updateMask kullanırsınız.

  • FieldMask kullanma: A FieldMask API çağrılarını yapanların, bir isteğin döndürmesi veya değiştirmesi gereken alanları listelemesinin bir yoludur. Bu, bir nesnede yalnızca belirli alanların kullanılmasını ve diğer alanların değiştirilmemesini sağlamak için virgülle ayrılmış bir alan listesidir. FieldMask kullanmak, API'nin gereksiz iş yapmasını önler ve performansı artırır. Alan maskeleri hakkında daha fazla bilgi için Google Sheets API'nin Alan maskelerini kullanma başlıklı makalesine bakın.

Üye oluşturma

Toplantı alanına üye eklemek için spaces.members kaynağında create yöntemini kullanın.

Aşağıdaki kod örneğinde üyenin nasıl oluşturulacağı gösterilmektedir:

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 Komut Dosyası

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 kısmını API'ye erişim izni veren erişim jetonuyla değiştirin.

Alan adı değerini, toplantı alanı için sunucu tarafından oluşturulan benzersiz kimlikle değiştirin.

Üyeler hakkında ayrıntılı bilgi edinme

Belirli bir üye hakkında ayrıntıları almak için spaces.members kaynağında get yöntemini kullanın.

Aşağıdaki kod örneğinde, bir üyenin nasıl alınacağı gösterilmektedir:

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 Komut Dosyası

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 kısmını API'ye erişim izni veren erişim jetonuyla değiştirin.

Alan adı ve üye adı değerlerini, toplantı alanı ve üye için benzersiz sunucu tarafından oluşturulan kimliklerle değiştirin.

Liste üyeleri

Bir toplantı alanındaki tüm üyeleri listelemek için spaces.members kaynağında list yöntemini kullanın.

Aşağıdaki kod örneğinde üyelerin nasıl listeleneceği gösterilmektedir:

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 Komut Dosyası

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 kısmını API'ye erişim izni veren erişim jetonuyla değiştirin.

Alan adı değerini, toplantı alanı için sunucu tarafından oluşturulan benzersiz kimlikle değiştirin.

Üyeyi güncelleme

Toplantı alanında bir üyenin rolünü güncellemek için spaces.members kaynağında patch yöntemini kullanın.

Aşağıdaki kod örneğinde, üyenin nasıl güncelleneceği gösterilmektedir:

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 Komut Dosyası

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 kısmını API'ye erişim izni veren erişim jetonuyla değiştirin.

Alan adı ve üye adı değerlerini, toplantı alanı ve üye için benzersiz sunucu tarafından oluşturulan kimliklerle değiştirin.

Üyeleri toplu güncelleme

Tek bir istekte birden fazla üyenin rollerini güncellemek için spaces.members kaynağında batchUpdate yöntemini kullanın.

Aşağıdaki kod örneğinde, üyelerin toplu olarak nasıl güncelleneceği gösterilmektedir:

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 Komut Dosyası

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 kısmını API'ye erişim izni veren erişim jetonuyla değiştirin.

Alan adı ve üye adı değerlerini, toplantı alanı ve üyeler için benzersiz sunucu tarafından oluşturulan kimliklerle değiştirin.

Üye silme

Bir üyeyi toplantı alanından kaldırmak için spaces.members kaynağında delete yöntemini kullanın.

Aşağıdaki kod örneğinde bir üyenin nasıl silineceği gösterilmektedir:

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 Komut Dosyası

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 kısmını API'ye erişim izni veren erişim jetonuyla değiştirin.

Alan adı ve üye adı değerlerini, toplantı alanı ve üye için benzersiz sunucu tarafından oluşturulan kimliklerle değiştirin.