会議室の設定を構成する

ミーティング スペースは、会議が開催される仮想の場所または永続オブジェクト(会議室など)を表します。会議スペースは、ユーザーが会議に参加して共有リソースを見つけるのにも役立ちます。

spaces.create メソッドを使用して会議スペースを作成すると、spaces リソースのインスタンスが返されます。このリソースには、会議スペースの構成である SpaceConfig オブジェクトが含まれています。また、会議スペース内の現在の conferenceRecords リソースへのリンクである ActiveConference オブジェクトも含まれています。会議スペースの管理の詳細については、会議スペースを管理するをご覧ください。

以降のセクションでは、これらのオブジェクトとメソッドを使用して会議スペースを構成する方法について詳しく説明します。

管理機能と会議へのアクセスを設定する

SpaceConfig オブジェクトを使用して、ユーザーが会議に参加する方法、モデレーション モード、機能の制限、ユーザーが会議に参加したときに付与される権限を設定できます。

会議へのアクセスを構成する

参加リクエストなしで会議スペースに参加できるユーザーを決定するには、AccessType オブジェクトを使用して accessType フィールドを設定します。参加者が自動的に参加できるようにするかどうかについて、複数の設定から選択できます。このフィールドは、ユーザーのデフォルトのアクセス設定にデフォルト設定されています。

会議スペースでホストされている会議に参加するために使用できるエントリ ポイントを定義するには、EntryPointAccess オブジェクトを使用して entryPointAccess フィールドを設定します。すべてのエントリ ポイントを許可する場合は ALL に設定し、会議スペースを作成した Google Cloud プロジェクトが所有するエントリ ポイントのみに範囲を限定する場合は CREATOR_APP_ONLY に設定します。

次のコードサンプルは、会議スペースのアクセス設定を構成する方法を示しています。

Java

import com.google.apps.meet.v2.Space;
import com.google.apps.meet.v2.SpaceConfig;
import com.google.apps.meet.v2.SpacesServiceClient;
import com.google.apps.meet.v2.UpdateSpaceRequest;
import com.google.protobuf.FieldMask;

public class ConfigureSpaceAccess {
  public static void main(String[] args) throws Exception {
    try (SpacesServiceClient client = SpacesServiceClient.create()) {
      Space space =
          Space.newBuilder()
              .setName("spaces/SPACE_NAME")
              .setConfig(
                  SpaceConfig.newBuilder()
                      .setAccessType(SpaceConfig.AccessType.RESTRICTED)
                      .setEntryPointAccess(SpaceConfig.EntryPointAccess.ALL)
                      .build())
              .build();
      FieldMask updateMask =
          FieldMask.newBuilder()
              .addPaths("config.access_type")
              .addPaths("config.entry_point_access")
              .build();
      UpdateSpaceRequest request =
          UpdateSpaceRequest.newBuilder()
              .setSpace(space)
              .setUpdateMask(updateMask)
              .build();
      Space response = client.updateSpace(request);
      System.out.println("Updated space: " + response.getName());
    }
  }
}

Node.js

const {SpacesServiceClient} = require('@google-apps/meet').v2;

async function configureSpaceAccess(spaceName) {
  const meetClient = new SpacesServiceClient();
  const [response] = await meetClient.updateSpace({
    space: {
      name: spaceName,
      config: {
        accessType: 'RESTRICTED',
        entryPointAccess: 'ALL',
      },
    },
    updateMask: {
      paths: ['config.access_type', 'config.entry_point_access'],
    },
  });
  console.log(`Updated space: ${response.name}`);
  return response;
}

Python

from google.apps import meet_v2
from google.protobuf import field_mask_pb2

def configure_space_access(space_name):
    client = meet_v2.SpacesServiceClient()
    space = meet_v2.Space(
        name=space_name,
        config=meet_v2.SpaceConfig(
            access_type=meet_v2.SpaceConfig.AccessType.RESTRICTED,
            entry_point_access=meet_v2.SpaceConfig.EntryPointAccess.ALL,
        ),
    )
    update_mask = field_mask_pb2.FieldMask(
        paths=["config.access_type", "config.entry_point_access"]
    )
    request = meet_v2.UpdateSpaceRequest(
        space=space,
        update_mask=update_mask
    )
    response = client.update_space(request=request)
    print(f"Updated space: {response.name}")
    return response

Apps Script

function configureSpaceAccess(spaceName) {
  const baseUrl = 'https://meet.googleapis.com/v2/';
  const mask = 'updateMask=config.accessType,config.entryPointAccess';
  const response = UrlFetchApp.fetch(`${baseUrl}${spaceName}?${mask}`, {
    method: 'patch',
    contentType: 'application/json',
    headers: {
      Authorization: 'Bearer ' + ScriptApp.getOAuthToken(),
    },
    payload: JSON.stringify({
      config: {
        accessType: 'RESTRICTED',
        entryPointAccess: 'ALL',
      },
    }),
  });
  const space = JSON.parse(response.getContentText());
  Logger.log('Updated space: ' + space.name);
  return space;
}

cURL

curl -X PATCH \
  "https://meet.googleapis.com/v2/spaces/SPACE_NAME?updateMask=config.accessType,config.entryPointAccess" \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "config": {
      "accessType": "RESTRICTED",
      "entryPointAccess": "ALL"
    }
  }'

ACCESS_TOKEN は、API へのアクセス権を付与するアクセス トークンに置き換えます。

スペース名は、会議スペースのサーバー生成の一意の ID に置き換えます。

管理設定を構成する

会議を管理するには、Moderation オブジェクトを使用して moderation フィールドを設定します。moderation モードが on の場合、会議の主催者は、共同主催者の管理(spaces.members を参照)や moderationRestrictions フィールドを使用した機能制限などの機能を使用して、会議を管理できます。メンバーの詳細については、会議スペースのメンバーを管理するをご覧ください。

会議が管理されている場合(moderationon の場合)に機能制限を定義するには、ModerationRestrictions オブジェクトを使用して moderationRestrictions フィールドを設定します。制限では、会議スペース内でチャット メッセージやリアクションを送信したり、画面を共有したりする権限を持つユーザーを定義します。

moderationRestrictions フィールドに機能制限を設定するには、RestrictionType を使用して chatRestrictionreactionRestrictionpresentRestriction を適用します。会議の主催者と共同主催者の両方に権限を適用する場合は HOSTS_ONLY に設定し、すべての参加者に適用する場合は NO_RESTRICTION に設定します。

ユーザーに割り当てられるデフォルトのロールを閲覧者に制限するには、DefaultJoinAsViewerType を使用して defaultJoinAsViewerType フィールドを設定します。defaultJoinAsViewerTypeon の場合、ユーザーは視聴者として参加します。off の場合、ユーザーは投稿者として参加します。デフォルトは off です。spaces.members でユーザーに明示的なロールが設定されている場合、ユーザーはそのロールで参加します。

出席レポートを設定する

会議スペースの出席レポートを作成するには、AttendanceReportGenerationType オブジェクトを使用して attendanceReportGenerationType フィールドを設定します。レポートがリクエストされると、Google Meet は出席レポートを会議の主催者の Google ドライブに保存し、メールも送信します。

自動アーティファクトを管理する

会議の主催者は、会議スペース内で自動録画、自動文字起こし、スマートメモを事前に設定できますが、共同主催者はできません。これらの設定を有効にすると、会議スペースの録画、文字起こしの生成、会議メモのキャプチャと Google ドキュメントへの整理が自動的に行われます。各機能は独立しており、会議スペースごとに設定されます。録音の字幕は英語でのみご利用いただけます。

自動アーティファクトは、会議スペースの作成時または会議スペースの作成後に事前構成できます。どちらのメソッドでも meetings.space.settings OAuth スコープが必要です。詳細については、ユースケース別の OAuth スコープをご覧ください。

Google カレンダーで作成された会議の自動アーティファクトを設定することもできます。

自動アーティファクトを設定するには、SpaceConfig オブジェクト内の ArtifactConfig オブジェクトを使用します。ArtifactConfig は、recordingConfigtranscriptionConfigsmartNotesConfig の各フィールドで構成されています。

各フィールドは、RecordingConfigTranscriptionConfigSmartNotesConfig などの類似オブジェクトにマッピングされます。各オブジェクトを設定するには、AutoGenerationType を使用して構成オブジェクト on または off を切り替えます。

会議中に作成されたアーティファクトを取得するには、アーティファクトを操作するをご覧ください。

文字起こしとスマートメモの違い

会議の文字起こしとスマートノート(「メモを取って」とも呼ばれます)はどちらも会議の情報をキャプチャしますが、これらの機能は目的が異なり、生成される成果物も異なります。

次の表に、この 2 つの違いを示します。

機能 成績証明 スマートメモ
概要 逐語録。 Gemini が生成した要点の簡潔な要約。
詳細レベル 100% の詳細。発言内容はすべて書き留められます。 概要。決定事項とアクション アイテムに焦点を当てます。
ユースケース 法令遵守、正確な引用の確認、ユーザーのアクセシビリティ。 遅れて参加したユーザーがすぐに追いつけるようにします。議事録の作成とプロジェクトの追跡を自動化します。
リアルタイムの使用状況 キャプションに使用されます。ファイルは通話後に生成されます。 通話中にサイドパネルで概要の作成状況を確認できます。
出力 発言者の名前とタイムスタンプを含む長いドキュメント。 セクションと箇条書きを含む会議メモの簡潔な Google ドキュメント。
引用 リンク可能な全文が含まれます。 文字起こしとスマート メモの両方が有効になっている場合は、文字起こしの特定の瞬間にリンクする引用(タイムスタンプ)が含まれます。詳しくは、両方の機能が有効になっている場合をご覧ください。

両方の機能が有効になっている場合

各機能は個別に使用できますが、文字起こしとスマートメモを同時に使用して、会議後の成果物をより効果的に作成することもできます。

両方が有効になっている場合、生成されたスマートメモのドキュメントに引用が表示されます。これらの引用は詳細セクション全体に表示され、会議の文字起こしの特定のタイムスタンプにリンクされています。引用をクリックすることで、文字起こしの該当するセクションに直接移動して、ディスカッションについての理解を深めることができます。

会議中、参加者には両方の機能が有効になっていることを示すインジケーターが表示されます。クリック可能な引用を生成するには、会議の期間中、有効な状態を維持する必要があります。ファイルは相互にリンクされていますが、システムはホストのドライブに 2 つの異なるドキュメントを生成します。両方のファイルは、カレンダーの予定にも自動的に添付されます。

会議スペースと設定に必要な OAuth スコープについて詳しくは、ユースケース別の OAuth スコープをご覧ください。