Google Chat-Gruppenbereich erstellen und Mitglieder hinzufügen

In dieser Anleitung wird beschrieben, wie Sie mit der setUp() Methode für die Space Ressource der Google Chat API einen Chat-Bereich erstellen und Mitglieder hinzufügen.

Die Space Ressource steht für einen Ort, an dem Nutzer und Chat-Apps Nachrichten senden, Dateien teilen und zusammenarbeiten können. Es gibt verschiedene Arten von Bereichen:

  • Direktnachrichten (DN) sind Unterhaltungen zwischen zwei Nutzern oder einem Nutzer und einer Chat-App.
  • Gruppenchats sind Unterhaltungen zwischen mindestens drei Nutzern und Chat-Apps.
  • Benannte Bereiche sind dauerhafte Orte, an denen Nutzer Nachrichten senden, Dateien teilen und zusammenarbeiten können.

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

  • Einen benannten Bereich mit ersten Mitgliedern erstellen
  • Eine Direktnachricht (DN) zwischen zwei Personen erstellen
  • Eine Gruppennachricht zwischen mehreren Personen einrichten

Beachten Sie beim Einrichten eines Bereichs Folgendes:

  • Der aufrufende (authentifizierte) Nutzer wird automatisch dem Bereich hinzugefügt. Sie müssen die Mitgliedschaft des Nutzers in der Anfrage nicht angeben.
  • Wenn Sie eine Direktnachricht (DN) erstellen und bereits eine DN zwischen zwei Nutzern vorhanden ist, wird diese zurückgegeben. Andernfalls wird eine DN erstellt.
  • Wenn Sie einen Gruppenchat erstellen und keine der in der Anfrage angegebenen Mitgliedschaften erfolgreich zum Gruppenchat hinzugefügt werden (z. B. aufgrund eines Berechtigungsproblems), wird möglicherweise ein leerer Gruppenchat erstellt, der nur den aufrufenden Nutzer enthält.
  • Sie können keine Bereiche mit Unterhaltungen mit Threads einrichten oder Personen außerhalb Ihrer Google Workspace-Organisation hinzufügen.
  • Doppelte Mitgliedschaften (einschließlich des aufrufenden Nutzers), die in der Anfrage angegeben sind, werden herausgefiltert und führen nicht zu einem Fehler in der Anfrage.
  • Wenn ein Google Workspace-Administrator eine Chat-App für die gesamte Google Workspace-Organisation installiert, erstellt Google Chat eine DN zwischen der installierten Chat-App und jedem Nutzer in der Organisation. Sie müssen DNs also nicht programmatisch einrichten. Listen Sie stattdessen Bereiche auf, um alle DNs zurückzugeben, oder suchen Sie nach einer Direktnachricht, um Details zu einer bestimmten DN zu erhalten.

Vorbereitung

Node.js

Python

Java

Apps Script

Bereich einrichten

Geben Sie in Ihrer Anfrage Folgendes an, um einen Bereich einzurichten:

  • Geben Sie den chat.spaces.create oder chat.spaces Autorisierungsbereich an.
  • Rufen Sie die SetUpSpace() Methode 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 menschlichen Nutzer als Mitglied des Bereichs 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 beispielsweise der resourceName der Person in der People API people/123456789 ist, können Sie den Nutzer dem Bereich hinzufügen, indem Sie eine Mitgliedschaft mit users/123456789 als member.name angeben.
    • Geben Sie groups/{group} an, um eine Gruppe als Mitglied des Bereichs hinzuzufügen. Dabei ist {group} die Gruppen-ID, für die Sie eine Mitgliedschaft erstellen möchten. Die ID für die Gruppe kann mit der Cloud Identity API abgerufen werden. Wenn die Cloud Identity API beispielsweise eine Gruppe mit dem Namen groups/123456789 zurückgibt, legen Sie membership.groupMember.name auf groups/123456789 fest. Google-Gruppen können nicht zu einem Gruppenchat oder einer DN hinzugefügt werden, sondern nur zu einem benannten Bereich.

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

Wenn Sie eine DN zwischen dem aufrufenden Nutzer und der aufrufenden 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 DN mit der aufrufenden App einrichten. Informationen zum Hinzufügen der aufrufenden App als Mitglied eines Bereichs oder einer vorhandenen DN zwischen zwei menschlichen Nutzern finden Sie unter Mitgliedschaft erstellen.

Im folgenden Beispiel wird ein benannter Bereich erstellt und eine Mitgliedschaft für zwei menschliche Nutzer (den authentifizierten Nutzer und einen anderen Nutzer) erstellt.

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);
}

await main();

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 Bereichs.
  • USER_NAME: Die ID des anderen Nutzers, für den eine Mitgliedschaft erstellt werden soll.

Wenn Sie zum Bereich wechseln möchten, verwenden Sie die Ressourcen-ID des Bereichs, um die URL des Bereichs zu erstellen. Sie finden die Ressourcen-ID im name des Bereichs im Antworttext von Google Chat. Wenn der name Ihres Bereichs beispielsweise spaces/1234567 ist, können Sie mit der folgenden URL zum Bereich wechseln: https://mail.google.com/chat/u/0/#chat/space/1234567.