Gruppenchat suchen

In diesem Leitfaden wird beschrieben, wie Sie Gruppenchats finden, die den anrufenden Nutzer und eine bestimmte Liste anderer Nutzer enthalten. In der Google Chat API sind Gruppenchats Space-Ressourcen, bei denen spaceType auf GROUP_CHAT festgelegt ist. Verwenden Sie die Methode findGroupChats (RPC, REST) für die Ressource Space, um einen Gruppenchat zu finden.

Vorbereitung

Node.js

Python

Java

Apps Script

Gruppenchat suchen

Wenn Sie einen Gruppenchat in Google Chat finden möchten, übergeben Sie Folgendes in Ihrer Anfrage:

  • Ein Autorisierungsbereich: chat.memberships.readonly oder chat.memberships.
  • Rufen Sie die Methode findGroupChats (RPC, REST) auf und übergeben Sie die Ressourcennamen der anderen Nutzer.

So finden Sie einen Gruppenchat mit bestimmten Mitgliedern:

Node.js

/**
 * This sample shows how to find a group chat with specific members.
 *
 * It relies on the @google-apps/chat npm package.
 */
// Read the documentation for more details:
// https://developers.google.com/workspace/chat/api/reference/rpc/google.chat.v1#google.chat.v1.ChatService.FindGroupChats

const {ChatServiceClient} = require('@google-apps/chat');
const {auth} = require('google-auth-library');

async function main() {
  // Create a client
  const chatClient = new ChatServiceClient({
    authClient: await auth.getClient({
      scopes: ['https://www.googleapis.com/auth/chat.memberships.readonly']
    })
  });

  // The users to find a group chat with.
  // Don't include the caller.
  const users = [
    'users/123456789',
    'users/987654321'
  ];

  // Create the request
  const request = {
    users: users
  };

  // Call the API
  const response = await chatClient.findGroupChats(request);

  // Handle the response
  if (response.spaces && response.spaces.length > 0) {
    console.log('Found group chat:', response.spaces[0].name);
  } else {
    console.log('No group chat found.');
  }
}

main().catch(console.error);

Python

"""
This sample shows how to find a group chat with specific members.
"""
from google.apps import chat_v1
import google.auth

# Read the documentation for more details:
# https://developers.google.com/workspace/chat/api/reference/rpc/google.chat.v1#google.chat.v1.ChatService.FindGroupChats

def find_group_chat():
    # Create a client
    scopes = ["https://www.googleapis.com/auth/chat.memberships.readonly"]
    credentials, _ = google.auth.default(scopes=scopes)
    client = chat_v1.ChatServiceClient(credentials=credentials)

    # The users to find a group chat with.
    # Don't include the caller.
    users_list = [
        "users/123456789",
        "users/987654321"
    ]

    # Create the request
    request = chat_v1.FindGroupChatsRequest(
        users=users_list
    )

    # Call the API
    response = client.find_group_chats(request)

    # Handle the response
    if response.spaces:
        print(f"Found group chat: {response.spaces[0].name}")
    else:
        print("No group chat found.")

if __name__ == "__main__":
    find_group_chat()

Java

/**
 * This sample shows how to find a group chat with specific members.
 */
import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.chat.v1.ChatServiceClient;
import com.google.chat.v1.ChatServiceSettings;
import com.google.chat.v1.FindGroupChatsRequest;
import com.google.chat.v1.FindGroupChatsResponse;
import java.util.Arrays;
import java.util.List;

// Read the documentation for more details:
// https://developers.google.com/workspace/chat/api/reference/rpc/google.chat.v1#google.chat.v1.ChatService.FindGroupChats

public class FindGroupChat {
  public static void main(String[] args) throws Exception {
    GoogleCredentials credentials = GoogleCredentials.getApplicationDefault()
        .createScoped(Arrays.asList("https://www.googleapis.com/auth/chat.memberships.readonly"));
    ChatServiceSettings settings = ChatServiceSettings.newBuilder()
        .setCredentialsProvider(FixedCredentialsProvider.create(credentials))
        .build();
    try (ChatServiceClient chatServiceClient = ChatServiceClient.create(settings)) {
      List<String> users = Arrays.asList(
          "users/123456789",
          "users/987654321"
      );

      FindGroupChatsRequest request = FindGroupChatsRequest.newBuilder()
          .addAllUsers(users)
          .build();

      FindGroupChatsResponse response = chatServiceClient.findGroupChats(request);

      if (!response.getSpacesList().isEmpty()) {
        System.out.printf("Found group chat: %s\n", response.getSpacesList().get(0).getName());
      } else {
        System.out.println("No group chat found.");
      }
    }
  }
}

Apps Script

/**
 * This sample shows how to find a group chat with specific members.
 */
// Read the documentation for more details:
// https://developers.google.com/workspace/chat/api/reference/rpc/google.chat.v1#google.chat.v1.ChatService.FindGroupChats

function findGroupChat() {
  // The users to find a group chat with.
  // Don't include the caller.
  const users = [
    'users/123456789',
    'users/987654321'
  ];

  try {
    // Call the API
    // In Apps Script, query parameters are passed as optional arguments
    const response = Chat.Spaces.findGroupChats({
      users: users
    });

    if (response.spaces && response.spaces.length > 0) {
      console.log('Found group chat: ' + response.spaces[0].name);
    } else {
      console.log('No group chat found.');
    }
  } catch (err) {
    // Handle error
    console.log('Failed to find group chat: ' + err.message);
  }
}

Ersetzen Sie die Nutzerressourcennamen durch gültige Nutzer-IDs, um dieses Beispiel auszuführen. Sie können Nutzer-IDs über die People API oder die Directory API abrufen.

Die Chat API gibt eine Instanz von FindGroupChatsResponse (RPC, REST) zurück, die die Liste der gefundenen Gruppenbereiche enthält.

Gruppenchat mit Details finden

Standardmäßig gibt findGroupChats (RPC, REST) Space-Objekte zurück, die nur das Feld name im Format spaces/SPACE_NAME enthalten. Wenn Sie weitere Informationen zum Bereich erhalten möchten, z. B. displayName, spaceType oder createTime, geben Sie den Parameter spaceView als SPACE_VIEW_EXPANDED an.

Für die Verwendung von SPACE_VIEW_EXPANDED ist ein zusätzlicher Autorisierungsbereich erforderlich: https://www.googleapis.com/auth/chat.spaces oder https://www.googleapis.com/auth/chat.spaces.readonly.

So finden Sie einen Gruppenchat und rufen seine Details ab:

Node.js

/**
 * This sample shows how to find a group chat with specific members and return details.
 *
 * It relies on the @google-apps/chat npm package.
 */
// Read the documentation for more details:
// https://developers.google.com/workspace/chat/api/reference/rpc/google.chat.v1#google.chat.v1.ChatService.FindGroupChats

const {ChatServiceClient} = require('@google-apps/chat');
const {auth} = require('google-auth-library');

async function main() {
  // Create a client
  const chatClient = new ChatServiceClient({
    authClient: await auth.getClient({
      scopes: [
        'https://www.googleapis.com/auth/chat.spaces.readonly',
        'https://www.googleapis.com/auth/chat.memberships.readonly'
      ]
    })
  });

  // The users to find a group chat with.
  // Don't include the caller.
  const users = [
    'users/123456789',
    'users/987654321'
  ];

  // Create the request
  const request = {
    users: users,
    spaceView: 'SPACE_VIEW_EXPANDED'
  };

  // Call the API
  const response = await chatClient.findGroupChats(request);

  // Handle the response
  if (response.spaces && response.spaces.length > 0) {
    console.log('Found group chat:', response.spaces[0].displayName);
  } else {
    console.log('No group chat found.');
  }
}

main().catch(console.error);

Python

"""
This sample shows how to find a group chat with specific members and return details.
"""
from google.apps import chat_v1
import google.auth

# Read the documentation for more details:
# https://developers.google.com/workspace/chat/api/reference/rpc/google.chat.v1#google.chat.v1.ChatService.FindGroupChats

def find_group_chat_with_details():
    # Create a client
    scopes = [
        "https://www.googleapis.com/auth/chat.memberships.readonly",
        "https://www.googleapis.com/auth/chat.spaces.readonly"
    ]
    credentials, _ = google.auth.default(scopes=scopes)
    client = chat_v1.ChatServiceClient(credentials=credentials)

    # The users to find a group chat with.
    # Don't include the caller.
    users_list = [
        "users/123456789",
        "users/987654321"
    ]

    # Create the request
    request = chat_v1.FindGroupChatsRequest(
        users=users_list,
        space_view=chat_v1.SpaceView.SPACE_VIEW_EXPANDED
    )

    # Call the API
    response = client.find_group_chats(request)

    # Handle the response
    if response.spaces:
        print(f"Found group chat: {response.spaces[0].display_name}")
    else:
        print("No group chat found.")

if __name__ == "__main__":
    find_group_chat_with_details()

Java

/**
 * This sample shows how to find a group chat with specific members and return details.
 */
import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.chat.v1.ChatServiceClient;
import com.google.chat.v1.ChatServiceSettings;
import com.google.chat.v1.FindGroupChatsRequest;
import com.google.chat.v1.FindGroupChatsResponse;
import com.google.chat.v1.SpaceView;
import java.util.Arrays;
import java.util.List;

// Read the documentation for more details:
// https://developers.google.com/workspace/chat/api/reference/rpc/google.chat.v1#google.chat.v1.ChatService.FindGroupChats

public class FindGroupChatWithDetails {
  public static void main(String[] args) throws Exception {
    GoogleCredentials credentials = GoogleCredentials.getApplicationDefault()
        .createScoped(Arrays.asList(
            "https://www.googleapis.com/auth/chat.memberships.readonly",
            "https://www.googleapis.com/auth/chat.spaces.readonly"
        ));
    ChatServiceSettings settings = ChatServiceSettings.newBuilder()
        .setCredentialsProvider(FixedCredentialsProvider.create(credentials))
        .build();
    try (ChatServiceClient chatServiceClient = ChatServiceClient.create(settings)) {
      List<String> users = Arrays.asList(
          "users/123456789",
          "users/987654321"
      );

      FindGroupChatsRequest request = FindGroupChatsRequest.newBuilder()
          .addAllUsers(users)
          .setSpaceView(SpaceView.SPACE_VIEW_EXPANDED)
          .build();

      FindGroupChatsResponse response = chatServiceClient.findGroupChats(request);

      if (!response.getSpacesList().isEmpty()) {
        System.out.printf("Found group chat: %s\n", response.getSpacesList().get(0).getDisplayName());
      } else {
        System.out.println("No group chat found.");
      }
    }
  }
}

Apps Script

/**
 * This sample shows how to find a group chat with specific members and return details.
 */
// Read the documentation for more details:
// https://developers.google.com/workspace/chat/api/reference/rpc/google.chat.v1#google.chat.v1.ChatService.FindGroupChats

function findGroupChatWithDetails() {
  // The users to find a group chat with.
  // Don't include the caller.
  const users = [
    'users/123456789',
    'users/987654321'
  ];

  try {
    // Call the API
    // In Apps Script, query parameters are passed as optional arguments
    const response = Chat.Spaces.findGroupChats({
      users: users,
      spaceView: 'SPACE_VIEW_EXPANDED'
    });

    if (response.spaces && response.spaces.length > 0) {
      console.log('Found group chat: ' + response.spaces[0].displayName);
    } else {
      console.log('No group chat found.');
    }
  } catch (err) {
    // Handle error
    console.log('Failed to find group chat: ' + err.message);
  }
}

Ersetzen Sie die Nutzerressourcennamen durch gültige Nutzer-IDs, um dieses Beispiel auszuführen. Sie können Nutzer-IDs über die People API oder die Directory API abrufen.

Die Chat API gibt eine Instanz von FindGroupChatsResponse (RPC, REST) zurück, die die Liste der gefundenen Gruppenbereiche mit zusätzlichen spaceView-Details enthält.