Einen benannten Gruppenbereich in Google Chat erstellen

In diesem Leitfaden wird beschrieben, wie Sie mit der Methode create() für die Ressource Space der Google Chat API einen benannten Gruppenbereich erstellen.

Ein benannter Gruppenbereich (in dem spaceType SPACE ist) ist ein Ort, an dem Nutzer Nachrichten senden, Dateien teilen und zusammenarbeiten können. Benannte Gruppenbereiche können Chat-Apps enthalten. Benannte Gruppenbereiche haben Administratoren, die Verwaltungseinstellungen und Beschreibungen anwenden sowie Personen und Apps hinzufügen oder entfernen können.

Wenn Sie verschiedene Arten von Google Chat-Gruppenbereichen (einschließlich Direktnachrichten oder Gruppennachrichten) erstellen möchten, verwenden Sie die Methode setUp() für die Ressource Space, um den Gruppenbereich zu erstellen und gleichzeitig Mitglieder hinzuzufügen. Weitere Informationen finden Sie unter Projektbereich einrichten.

Nachdem Sie einen benannten Gruppenbereich erstellt haben, ist das einzige Mitglied des Gruppenbereichs der authentifizierte Nutzer. Wenn Sie dem Gruppenbereich Mitglieder hinzufügen möchten, rufen Sie die Methode create() für die Ressource Membership für jede Person oder App auf, die Sie hinzufügen möchten. Alternativ können Sie mit der Methode setUp() einen benannten Gruppenbereich erstellen und gleichzeitig Mitglieder hinzufügen.

Vorbereitung

Node.js

Python

Java

Apps Script

Benannten Bereich als Nutzer erstellen

Wenn Sie einen benannten Bereich mit Nutzerauthentifizierung erstellen möchten, übergeben Sie Folgendes in Ihrer Anfrage:

  • Geben Sie den Autorisierungsbereich chat.spaces.create oder chat.spaces an.
  • Rufen Sie die Methode CreateSpace() auf und übergeben Sie space als Instanz von Space mit den folgenden Feldern:
    • spaceType“ ist auf „SPACE“ gesetzt.
    • displayName auf den für Nutzer sichtbaren Namen des Bereichs festgelegt.
    • Optional können Sie weitere Attribute festlegen, z. B.:
      • spaceDetails: Eine für Nutzer sichtbare Beschreibung und eine Reihe von Richtlinien für den Gruppenbereich.
      • predefinedPermissionSettings: vordefinierte Berechtigungen für den Gruppenbereich. Sie können beispielsweise festlegen, dass alle Mitglieder oder nur Bereichsmanager Nachrichten posten dürfen.

So erstellen Sie einen benannten Bereich:

Node.js

chat/client-libraries/cloud/create-space-user-cred.js
import {createClientWithUserCredentials} from './authentication-utils.js';

const USER_AUTH_OAUTH_SCOPES = ['https://www.googleapis.com/auth/chat.spaces.create'];

// This sample shows how to create a named space with user credential
async function main() {
  // Create a client
  const chatClient = await createClientWithUserCredentials(USER_AUTH_OAUTH_SCOPES);

  // Initialize request argument(s)
  const request = {
    space: {
      spaceType: 'SPACE',
      // Replace DISPLAY_NAME here.
      displayName: 'DISPLAY_NAME'
    }
  };

  // Make the request
  const response = await chatClient.createSpace(request);

  // Handle the response
  console.log(response);
}

main().catch(console.error);

Python

chat/client-libraries/cloud/create_space_user_cred.py
from authentication_utils import create_client_with_user_credentials
from google.apps import chat_v1 as google_chat

SCOPES = ["https://www.googleapis.com/auth/chat.spaces.create"]

def create_space_with_user_cred():
    # Create a client
    client = create_client_with_user_credentials(SCOPES)

    # Initialize request argument(s)
    request = google_chat.CreateSpaceRequest(
        space = {
            "space_type": 'SPACE',
            # Replace DISPLAY_NAME here.
            "display_name": 'DISPLAY_NAME'
        }
    )

    # Make the request
    response = client.create_space(request)

    # Handle the response
    print(response)

create_space_with_user_cred()

Java

chat/client-libraries/cloud/src/main/java/com/google/workspace/api/chat/samples/CreateSpaceUserCred.java
import com.google.chat.v1.ChatServiceClient;
import com.google.chat.v1.CreateSpaceRequest;
import com.google.chat.v1.Space;

// This sample shows how to create space with user credential.
public class CreateSpaceUserCred {

  private static final String SCOPE =
    "https://www.googleapis.com/auth/chat.spaces.create";

  public static void main(String[] args) throws Exception {
    try (ChatServiceClient chatServiceClient =
        AuthenticationUtils.createClientWithUserCredentials(
          ImmutableList.of(SCOPE))) {
      CreateSpaceRequest.Builder request = CreateSpaceRequest.newBuilder()
        .setSpace(Space.newBuilder()
          .setSpaceType(Space.SpaceType.SPACE)
          // Replace DISPLAY_NAME here.
          .setDisplayName("DISPLAY_NAME"));
      Space response = chatServiceClient.createSpace(request.build());

      System.out.println(JsonFormat.printer().print(response));
    }
  }
}

Apps Script

chat/advanced-service/Main.gs
/**
 * This sample shows how to create space with user credential
 * 
 * It relies on the OAuth2 scope 'https://www.googleapis.com/auth/chat.spaces.create'
 * referenced in the manifest file (appsscript.json).
 */
function createSpaceUserCred() {
  // Initialize request argument(s)
  const space = {
    spaceType: 'SPACE',
    // TODO(developer): Replace DISPLAY_NAME here
    displayName: 'DISPLAY_NAME'
  };

  // Make the request
  const response = Chat.Spaces.create(space);

  // Handle the response
  console.log(response);
}

Benannten Gruppenbereich als Chat-App erstellen

Für die App-Authentifizierung ist eine einmalige Administratorgenehmigung erforderlich.

Wenn Sie einen Nutzer mit App-Authentifizierung in einen Bereich einladen oder hinzufügen möchten, übergeben Sie Folgendes in Ihrer Anfrage:

  • Geben Sie den Autorisierungsbereich chat.app.spaces.create oder chat.app.spaces an.
  • Rufen Sie die Methode create für die Ressource Space auf.
  • Legen Sie spaceType auf SPACE fest.
  • Setzen Sie displayName auf den für Nutzer sichtbaren Namen des Bereichs. Im folgenden Beispiel ist displayName auf API-made festgelegt.
  • Geben Sie die Kundennummer der Google Workspace-Domain im Feld customer an.
  • Optional können Sie andere Projektbereichsattribute festlegen, z. B. spaceDetails (eine für Nutzer sichtbare Beschreibung und eine Reihe von Richtlinien für den Projektbereich).

API-Schlüssel erstellen

Wenn Sie eine Developer Preview-API-Methode aufrufen möchten, müssen Sie eine nicht öffentliche Developer Preview-Version des API-Erkennungsdokuments verwenden. Zur Authentifizierung der Anfrage müssen Sie einen API-Schlüssel übergeben.

So erstellen Sie den API-Schlüssel: Öffnen Sie das Google Cloud-Projekt Ihrer App und gehen Sie so vor:

  1. Rufen Sie in der Google Cloud Console das Menü  > APIs und Dienste > Anmeldedaten auf.

    Zu den Anmeldedaten

  2. Klicken Sie auf Anmeldedaten erstellen > API-Schlüssel.
  3. Der neue API-Schlüssel wird angezeigt.
    • Klicken Sie auf „Kopieren“ , um den API-Schlüssel zu kopieren und im Code Ihrer App zu verwenden. Der API-Schlüssel ist auch im Bereich „API-Schlüssel“ der Anmeldedaten Ihres Projekts zu finden.
    • Klicken Sie auf Schlüssel einschränken, um die erweiterten Einstellungen zu aktualisieren und die Verwendung Ihres API-Schlüssels einzuschränken. Weitere Informationen finden Sie unter Einschränkungen für API-Schlüssel anwenden.

Skript schreiben, das die Chat API aufruft

So erstellen Sie einen benannten Bereich:

Python

  1. Erstellen Sie in Ihrem Arbeitsverzeichnis eine Datei mit dem Namen chat_space_create_named_app.py.
  2. Fügen Sie den folgenden Code in chat_space_create_named_app.py ein:

    from google.oauth2 import service_account
    from apiclient.discovery import build
    
    # Define your app's authorization scopes.
    # When modifying these scopes, delete the file token.json, if it exists.
    SCOPES = ["https://www.googleapis.com/auth/chat.app.spaces.create"]
    
    def main():
        '''
        Authenticates with Chat API using app authentication,
        then creates a Chat space.
        '''
    
        # Specify service account details.
        creds = (
            service_account.Credentials.from_service_account_file('credentials.json')
            .with_scopes(SCOPES)
        )
    
        # Build a service endpoint for Chat API.
        chat = build('chat', 'v1', credentials=creds, discoveryServiceUrl='https://chat.googleapis.com/$discovery/rest?version=v1&labels=DEVELOPER_PREVIEW&key=API_KEY')
    
        # Use the service endpoint to call Chat API.
        result = chat.spaces().create(
    
          # Details about the space to create.
          body = {
    
            # To create a named space, set spaceType to SPACE.
            'spaceType': 'SPACE',
    
            # The user-visible name of the space.
            'displayName': 'API-made',
    
            # The customer ID of the Workspace domain.
            'customer': 'CUSTOMER'
          }
    
          ).execute()
    
        # Prints details about the created space.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. Ersetzen Sie im Code Folgendes:

    • API_KEY: Der API-Schlüssel, den Sie zum Erstellen des Dienstendpunkts für die Chat API erstellt haben.

    • CUSTOMER: Die Kunden-ID der Domain des Bereichs im Format customer/{customer}, wobei {customer} die ID aus der Admin SDK-Kundenressource ist. Wenn Sie einen Gruppenbereich in derselben Google Workspace-Organisation wie die Chat-App erstellen möchten, verwenden Sie customers/my_customer.

  4. Erstellen Sie das Beispiel in Ihrem Arbeitsverzeichnis und führen Sie es aus:

    python3 chat_space_create_named_app.py

Gruppenbereich in Google Chat öffnen

Verwenden Sie zum Aufrufen des Gruppenbereichs die Ressourcen-ID des Gruppenbereichs, um die URL des Gruppenbereichs zu erstellen. Sie finden die Ressourcen-ID des Bereichs name im Antworttext von Google Chat. Wenn der name Ihres Gruppenbereichs beispielsweise spaces/1234567 ist, können Sie über die folgende URL auf den Gruppenbereich zugreifen: https://mail.google.com/chat/u/0/#chat/space/1234567.

Einschränkungen und Überlegungen

  • Wenn Sie einen Gruppenbereich mit App-Authentifizierung erstellen, wird die authentifizierende Chat-App als Mitglied des Gruppenbereichs hinzugefügt, aber im Gegensatz zur Nutzerauthentifizierung nicht als Administrator des Gruppenbereichs. Standardmäßig können alle Gruppenbereichsmitglieder die Chat-App entfernen. Wenn nur Gruppenbereichsmanager die Chat-App entfernen dürfen, legen Sie permissionSettings.manageApps auf managersAllowed fest.