چت گروهی پیدا کنید

این راهنما نحوه یافتن چت‌های گروهی که شامل کاربر فراخواننده و لیست مشخصی از سایر کاربران هستند را توضیح می‌دهد. در API چت گوگل، چت‌های گروهی منابع Space هستند که spaceType آنها روی GROUP_CHAT تنظیم شده است. برای یافتن یک چت گروهی، از متد findGroupChats ( RPC , REST ) ​​در منبع Space استفاده کنید.

پیش‌نیازها

نود جی اس

پایتون

جاوا

اسکریپت برنامه‌ها

چت گروهی پیدا کنید

برای یافتن یک چت گروهی در گوگل چت، موارد زیر را در درخواست خود وارد کنید:

  • یک محدوده مجوز: chat.memberships.readonly یا chat.memberships .
  • متد findGroupChats ( RPC , REST ) ​​را فراخوانی کنید و نام منابع سایر کاربران را ارسال کنید.

در اینجا نحوه پیدا کردن یک چت گروهی با اعضای خاص آورده شده است:

نود جی اس

/**
 * 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);

پایتون

"""
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()

جاوا

/**
 * 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.");
      }
    }
  }
}

اسکریپت برنامه‌ها

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

برای اجرای این نمونه، نام‌های منابع کاربری را با شناسه‌های کاربری معتبر جایگزین کنید. می‌توانید شناسه‌های کاربری را از API People یا API Directory دریافت کنید.

API چت نمونه‌ای از FindGroupChatsResponse ( RPC ، REST ) ​​را برمی‌گرداند که شامل فهرست فضاهای یافت‌شده است.

یک چت گروهی با جزئیات پیدا کنید

به طور پیش‌فرض، findGroupChats ( RPC ، REST ) ​​اشیاء Space را که فقط شامل فیلد name هستند، با فرمت spaces/SPACE_NAME برمی‌گرداند. برای دریافت جزئیات بیشتر در مورد فضا، مانند displayName ، spaceType یا createTime ، پارامتر spaceView را به صورت SPACE_VIEW_EXPANDED مشخص کنید.

استفاده از SPACE_VIEW_EXPANDED به یک محدوده مجوز اضافی نیاز دارد: https://www.googleapis.com/auth/chat.spaces یا https://www.googleapis.com/auth/chat.spaces.readonly .

در اینجا نحوه پیدا کردن یک چت گروهی و بازیابی جزئیات آن آمده است:

نود جی اس

/**
 * 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);

پایتون

"""
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()

جاوا

/**
 * 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.");
      }
    }
  }
}

اسکریپت برنامه‌ها

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

برای اجرای این نمونه، نام‌های منابع کاربری را با شناسه‌های کاربری معتبر جایگزین کنید. می‌توانید شناسه‌های کاربری را از API People یا API Directory دریافت کنید.

API چت نمونه‌ای از FindGroupChatsResponse ( RPC ، REST ) ​​را برمی‌گرداند که شامل لیست فضاهای یافت شده از جمله جزئیات اضافی spaceView است.