このガイドでは、Google Chat API の Space
リソースで setUp()
メソッドを使用して、Chat スペースを作成し、メンバーを追加する方法について説明します。
Space
リソースは、ユーザーと Chat 用アプリがメッセージの送信、ファイルの共有、共同作業を行える場所を表します。スペースにはいくつかの種類があります。
- ダイレクト メッセージ(DM)は、2 人のユーザー間、またはユーザーと Chat 用アプリ間の会話です。
- グループ チャットは、3 人以上のユーザーと Chat 用アプリ間の会話です。
- 名前付きスペースは、ユーザーがメッセージの送信、ファイルの共有、共同作業を行うための永続的な場所です。
setUp()
メソッドを使用すると、次のことができます。
- 初期メンバーを含む名前付きスペースを作成します。
- 2 人のユーザー間でダイレクト メッセージ(DM)を作成します。
- 複数のユーザー間でグループ メッセージを設定します。
スペースを設定する際は、次の点を考慮してください。
- 呼び出し(認証済み)ユーザーはスペースに自動的に追加されるため、リクエストでユーザーのメンバーシップを指定する必要はありません。
- ダイレクト メッセージ(DM)を作成するときに、2 人のユーザー間に DM が存在する場合は、その DM が返されます。それ以外の場合は、DM が作成されます。
- グループ チャットの作成時に、リクエストで指定されたメンバーシップがグループ チャットに正常に追加されなかった場合(権限の問題など)、空のグループ チャット(呼び出しユーザーのみを含む)が作成されることがあります。
- スレッド形式の返信を使用するスペースを設定したり、Google Workspace 組織外のユーザーを追加したりすることはできません。
- リクエストで指定された重複するメンバーシップ(呼び出しユーザーを含む)は、リクエスト エラーが発生するのではなく、フィルタリングされます。
- Google Workspace 管理者が Google Workspace 組織全体に Chat 用アプリをインストールすると、Google Chat はインストールされた Chat 用アプリと組織内の各ユーザーとの間に DM を作成するため、プログラムで DM を設定する必要はありません。代わりに、スペースを一覧表示してすべての DM を返すか、ダイレクト メッセージを検索して特定の DM の詳細を取得します。
前提条件
Node.js
- Google Chat へのアクセス権を持つ Business または Enterprise の Google Workspace アカウント。
- 環境を設定します。
- Google Cloud プロジェクトを作成します。
- OAuth 同意画面を構成する。
- Chat 用アプリの名前、アイコン、説明を使用して、Google Chat API を有効にして構成します。
- Node.js Cloud クライアント ライブラリをインストールします。
- デスクトップ アプリケーションの
OAuth クライアント ID 認証情報を作成します。このガイドのサンプルを実行するには、認証情報を
credentials.json
という名前の JSON ファイルとしてローカル ディレクトリに保存します。
- ユーザー認証をサポートする 認可スコープを選択します。
Python
- Google Chat へのアクセス権を持つ Business または Enterprise の Google Workspace アカウント。
- 環境を設定します。
- Google Cloud プロジェクトを作成します。
- OAuth 同意画面を構成する。
- Chat 用アプリの名前、アイコン、説明を使用して、Google Chat API を有効にして構成します。
- Python Cloud クライアント ライブラリをインストールします。
- デスクトップ アプリケーションの
OAuth クライアント ID 認証情報を作成します。このガイドのサンプルを実行するには、認証情報を
credentials.json
という名前の JSON ファイルとしてローカル ディレクトリに保存します。
- ユーザー認証をサポートする 認可スコープを選択します。
Java
- Google Chat へのアクセス権を持つ Business または Enterprise の Google Workspace アカウント。
- 環境を設定します。
- Google Cloud プロジェクトを作成します。
- OAuth 同意画面を構成する。
- Chat 用アプリの名前、アイコン、説明を使用して、Google Chat API を有効にして構成します。
- Java Cloud クライアント ライブラリをインストールします。
- デスクトップ アプリケーションの
OAuth クライアント ID 認証情報を作成します。このガイドのサンプルを実行するには、認証情報を
credentials.json
という名前の JSON ファイルとしてローカル ディレクトリに保存します。
- ユーザー認証をサポートする 認可スコープを選択します。
Apps Script
- Google Chat へのアクセス権を持つ Business または Enterprise の Google Workspace アカウント。
- 環境を設定します。
- Google Cloud プロジェクトを作成します。
- OAuth 同意画面を構成する。
- Chat 用アプリの名前、アイコン、説明を使用して、Google Chat API を有効にして構成します。
- スタンドアロンの Apps Script プロジェクトを作成し、高度な Chat サービスを有効にします。
- ユーザー認証をサポートする 認可スコープを選択します。
スペースを設定する
スペースを設定するには、リクエストで次の情報を渡します。
chat.spaces.create
またはchat.spaces
認証スコープを指定します。SetUpSpace()
メソッドを呼び出します。space
をSpace
のインスタンスとして、displayName
やspaceType
などの必要なフィールドをすべて含めて渡します。memberships
をMembership
インスタンスの配列として渡します。インスタンスごとに、次の操作を行います。users/{user}
を指定して、スペース メンバーとしてユーザーを追加します。ここで、{user}
は People API のperson
の{person_id}
、または Directory API のuser
の ID です。たとえば、People API の人物resourceName
がpeople/123456789
の場合、member.name
としてusers/123456789
を含むメンバーシップを含めることで、ユーザーをスペースに追加できます。groups/{group}
を指定して、グループをスペースのメンバーとして追加します。ここで、{group}
はメンバーシップを作成するグループの ID です。グループの ID は、Cloud Identity API を使用して取得できます。たとえば、Cloud Identity API が名前groups/123456789
のグループを返す場合、membership.groupMember.name
をgroups/123456789
に設定します。Google グループは、グループ チャットや DM に追加することはできません。名前付きスペースにのみ追加できます。
通話中のユーザーと別のユーザーとの間に DM を作成するには、リクエストでユーザーのメンバーシップを指定します。
通話中のユーザーと通話中のアプリの間に DM を作成するには、space.singleUserBotDm
を true
に設定し、メンバーシップを指定しないでください。このメソッドを使用して、通話アプリとの DM を設定することしかできません。通話アプリをスペースのメンバーとして追加したり、2 人のユーザー間の既存の DM に追加したりするには、メンバーシップを作成するをご覧ください。
次の例では、名前付きスペースを作成し、2 人のユーザー(認証済みユーザーと別のユーザー)のスペース メンバーシップを 1 つ作成します。
Node.js
Python
Java
Apps Script
サンプルを実行するには、次の値を置き換えます。
DISPLAY_NAME
: 新しいスペースの表示名。USER_NAME
: メンバーシップに含める他のユーザーの ID。
スペースに移動するには、スペースのリソース ID を使用してスペースの URL を作成します。リソース ID は、Google Chat レスポンス本文のスペース name
から取得できます。たとえば、スペースの name
が spaces/1234567
の場合、次の URL を使用してスペースに移動できます: https://mail.google.com/chat/u/0/#chat/space/1234567
。
関連トピック
- スペースを作成する。
- スペースの詳細を取得します。
- スペースを一覧表示する。
- スペースを更新する。
- スペースを削除する。
- ダイレクト メッセージ スペースを見つける。
- 特定のユーザーがスペースを検出できるようにする。