Google Chat-Gruppenbereich erstellen und Mitglieder hinzufügen

In diesem Leitfaden wird beschrieben, wie Sie mit der Methode setUp() der Space-Ressource der Google Chat API einen Google Chat-Gruppenbereich erstellen und ihm Mitglieder hinzufügen.

Die Ressource Space ist ein Ort, an dem Nutzer und Chat-Apps Nachrichten senden, Dateien teilen und zusammenarbeiten können. Es gibt verschiedene Arten von Gruppenbereichen:

  • Direktnachrichten (DMs) sind Unterhaltungen zwischen zwei Nutzern oder einem Nutzer und einer Chat-App.
  • Gruppenchats sind Unterhaltungen zwischen drei oder mehr Nutzern und Chat-Apps.
  • Namensgruppenbereiche sind persistente Gruppenbereiche, in denen Nutzer Nachrichten senden, Dateien teilen und zusammenarbeiten können.

Mit der Methode setUp() können Sie Folgendes tun:

  • Erstellen Sie einen benannten Gruppenbereich mit den ersten Mitgliedern.
  • Erstellen Sie eine Direktnachricht zwischen zwei Personen.
  • Sie können eine Gruppennachricht an mehrere Personen senden.

Beachten Sie beim Einrichten eines Gruppenbereichs Folgendes:

  • Der anrufende (authentifizierte) Nutzer wird dem Gruppenbereich automatisch hinzugefügt. Sie müssen also die Mitgliedschaft des Nutzers in der Anfrage nicht angeben.
  • Wenn beim Erstellen einer Direktnachricht (DM) bereits eine DM zwischen zwei Nutzern vorhanden ist, wird die DM zurückgegeben. Andernfalls wird eine Direktnachricht erstellt.
  • Wenn beim Erstellen eines Gruppenchats keine der in der Anfrage angegebenen Mitgliedschaften hinzugefügt werden kann (z. B. aufgrund von Berechtigungsproblemen), wird möglicherweise ein leerer Gruppenchat erstellt, der nur den anrufenden Nutzer enthält.
  • Sie können keine Gruppenbereiche mit Antworten in Form von Threads einrichten und keine Personen außerhalb Ihrer Google Workspace-Organisation hinzufügen.
  • Doppelte Mitgliedschaften (einschließlich des anrufenden Nutzers), die in der Anfrage angegeben sind, werden herausgefiltert, anstatt zu einem Fehler zu führen.

Vorbereitung

Node.js

Python

Java

Apps Script

Gruppenbereich einrichten

Wenn Sie einen Gruppenbereich einrichten möchten, geben Sie Folgendes in Ihrer Anfrage an:

  • Geben Sie den Autorisierungsbereich chat.spaces.create oder chat.spaces an.
  • Rufen Sie die Methode SetUpSpace() auf.
  • Übergeben Sie space als Instanz von Space mit allen erforderlichen Feldern wie displayName oder spaceType.
  • Übergeben Sie memberships als Array von Membership-Instanzen. Für jede Instanz:
    • Geben Sie users/{user} an, um einen Nutzer als Mitglied eines Gruppenbereichs hinzuzufügen. Dabei ist {user} entweder die {person_id} für die person aus der People API oder die ID eines user in der Directory API. Wenn die Person resourceName der People API beispielsweise people/123456789 ist, können Sie den Nutzer dem Gruppenbereich hinzufügen, indem Sie eine Mitgliedschaft mit users/123456789 als member.name angeben.
    • Geben Sie groups/{group} an, um eine Gruppe als Mitglied eines Gruppenbereichs hinzuzufügen. {group} ist die Gruppen-ID, für die Sie die Mitgliedschaft erstellen möchten. Die ID der Gruppe kann mit der Cloud Identity API abgerufen werden. Wenn die Cloud Identity API beispielsweise eine Gruppe mit dem Namen groups/123456789 zurückgibt, setzen Sie membership.groupMember.name auf groups/123456789. Google-Gruppen können keinem Gruppenchat oder keiner Direktnachricht hinzugefügt werden, sondern nur einem benannten Gruppenbereich.

Wenn Sie eine DM zwischen dem anrufenden Nutzer und einem anderen menschlichen Nutzer erstellen möchten, geben Sie in Ihrer Anfrage eine Mitgliedschaft des menschlichen Nutzers an.

Wenn Sie eine DM zwischen dem anrufenden Nutzer und der anrufenden App erstellen möchten, legen Sie space.singleUserBotDm auf true fest und geben Sie keine Mitgliedschaften an. Mit dieser Methode können Sie nur eine Direktnachricht mit der Anruf-App einrichten. Wenn Sie die Anruf-App als Mitglied eines Gruppenbereichs oder einer bestehenden Direktnachricht zwischen zwei Nutzern hinzufügen möchten, lesen Sie den Hilfeartikel Mitgliedschaft erstellen.

Im folgenden Beispiel wird ein benannter Gruppenbereich erstellt und eine Mitgliedschaft für zwei natürliche Personen (der authentifizierte Nutzer und ein anderer Nutzer) festgelegt.

Node.js

chat/client-libraries/cloud/set-up-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 set up a named space with one initial member
// 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'
    },
    memberships: [{
      member: {
        // Replace USER_NAME here.
        name: 'users/USER_NAME',
        type: 'HUMAN'
      }
    }]
  };

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

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

main().catch(console.error);

Python

chat/client-libraries/cloud/set_up_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 set_up_space_with_user_cred():
    # Create a client
    client = create_client_with_user_credentials(SCOPES)

    # Initialize request argument(s)
    request = google_chat.SetUpSpaceRequest(
        space = {
            "space_type": 'SPACE',
            # Replace DISPLAY_NAME here.
            "display_name": 'DISPLAY_NAME'
        },
        memberships = [{
            "member": {
                # Replace USER_NAME here.
                "name": 'users/USER_NAME',
                "type_": 'HUMAN'
            }
        }]
    )

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

    # Handle the response
    print(response)

set_up_space_with_user_cred()

Java

chat/client-libraries/cloud/src/main/java/com/google/workspace/api/chat/samples/SetUpSpaceUserCred.java
import com.google.chat.v1.ChatServiceClient;
import com.google.chat.v1.Membership;
import com.google.chat.v1.SetUpSpaceRequest;
import com.google.chat.v1.Space;
import com.google.chat.v1.User;

// This sample shows how to set up a named space with one initial member with
// user credential.
public class SetUpSpaceUserCred {

  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))) {
      SetUpSpaceRequest.Builder request = SetUpSpaceRequest.newBuilder()
        .setSpace(Space.newBuilder()
          .setSpaceType(Space.SpaceType.SPACE)
          // Replace DISPLAY_NAME here.
          .setDisplayName("DISPLAY_NAME"))
        .addAllMemberships(ImmutableList.of(Membership.newBuilder()
          .setMember(User.newBuilder()
            // Replace USER_NAME here.
            .setName("users/USER_NAME")
            .setType(User.Type.HUMAN)).build()));
      Space response = chatServiceClient.setUpSpace(request.build());

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

Apps Script

chat/advanced-service/Main.gs
/**
 * This sample shows how to set up a named space with one initial member 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 setUpSpaceUserCred() {
  // Initialize request argument(s)
  const space = {
    spaceType: 'SPACE',
    // TODO(developer): Replace DISPLAY_NAME here
    displayName: 'DISPLAY_NAME'
  };
  const memberships = [{
    member: {
      // TODO(developer): Replace USER_NAME here
      name: 'users/USER_NAME',
      // User type for the membership
      type: 'HUMAN'
    }
  }];

  // Make the request
  const response = Chat.Spaces.setup({ space: space, memberships: memberships });

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

Ersetzen Sie zum Ausführen des Beispiels Folgendes:

  • DISPLAY_NAME: Der Anzeigename des neuen Gruppenbereichs.
  • USER_NAME: die ID des anderen Nutzers, für den eine Mitgliedschaft angegeben werden soll.

Um den Gruppenbereich aufzurufen, verwenden Sie die Ressourcen-ID des Gruppenbereichs, um die URL des Gruppenbereichs zu erstellen. Sie finden die Ressourcen-ID im Gruppenbereich name im Textkörper der Google Chat-Antwort. Wenn die name Ihres Gruppenbereichs beispielsweise spaces/1234567 lautet, können Sie den Gruppenbereich über die folgende URL aufrufen: https://mail.google.com/chat/u/0/#chat/space/1234567.