Znajdowanie czatu grupowego

Z tego przewodnika dowiesz się, jak znaleźć czaty grupowe, na których jest użytkownik wykonujący połączenie i określona lista innych użytkowników. W interfejsie Google Chat API czaty grupowe są zasobami Space, które mają wartość spaceType ustawioną na GROUP_CHAT. Aby znaleźć czat grupowy, użyj metody findGroupChats (RPC, REST) w zasobie Space.

Wymagania wstępne

Node.js

Python

Java

Google Apps Script

Znajdowanie czatu grupowego

Aby znaleźć czat grupowy w Google Chat, w żądaniu przekaż te informacje:

  • Zakres autoryzacji: chat.memberships.readonly lub chat.memberships.
  • Wywołaj metodę findGroupChats (RPC, REST), przekazując nazwy zasobów innych użytkowników.

Aby znaleźć czat grupowy z określonymi członkami:

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 user = [
    'users/123456789',
    'users/987654321'
  ];

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

  // 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.
    user_list = [
        "users/123456789",
        "users/987654321"
    ]

    # Create the request
    request = chat_v1.FindGroupChatsRequest(
        user=user_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()
          .addAllUser(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.");
      }
    }
  }
}

Google 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({
      user: 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);
  }
}

Aby uruchomić ten przykład, zastąp nazwy zasobów użytkownika prawidłowymi identyfikatorami użytkowników. Identyfikatory użytkowników możesz uzyskać za pomocą interfejsu People API lub Directory API.

Interfejs Chat API zwraca instancję FindGroupChatsResponse (RPC, REST), która zawiera listę znalezionych pokoi.

Znajdowanie czatu grupowego ze szczegółami

Domyślnie findGroupChats(RPC, REST) zwraca Space obiekty, które zawierają tylko pole name w formacie spaces/SPACE_NAME. Aby uzyskać więcej informacji o przestrzeni, np. displayName, spaceType lub createTime, ustaw parametr spaceView na SPACE_VIEW_EXPANDED.

Korzystanie z SPACE_VIEW_EXPANDED wymaga dodatkowego zakresu autoryzacji:https://www.googleapis.com/auth/chat.spaces lubhttps://www.googleapis.com/auth/chat.spaces.readonly.

Aby znaleźć czat grupowy i wyświetlić jego szczegóły:

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 user = [
    'users/123456789',
    'users/987654321'
  ];

  // Create the request
  const request = {
    user: user,
    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.
    user_list = [
        "users/123456789",
        "users/987654321"
    ]

    # Create the request
    request = chat_v1.FindGroupChatsRequest(
        user=user_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()
          .addAllUser(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.");
      }
    }
  }
}

Google 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({
      user: 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);
  }
}

Aby uruchomić ten przykład, zastąp nazwy zasobów użytkownika prawidłowymi identyfikatorami użytkowników. Identyfikatory użytkowników możesz uzyskać za pomocą interfejsu People API lub Directory API.

Interfejs Chat API zwraca instancję FindGroupChatsResponse (RPC, REST), która zawiera listę znalezionych pokoi wraz z dodatkowymi szczegółami spaceView.