Thiết lập một không gian có các thành viên đầu tiên

Hướng dẫn này giải thích cách sử dụng setUp() phương thức trên tài nguyên Space của API Google Chat để thiết lập Google Chat . Việc thiết lập không gian sẽ tạo một không gian và thêm những người dùng được chỉ định vào không gian đó.

Tài nguyên Space đại diện cho một nơi mà mọi người và ứng dụng Chat có thể gửi tin nhắn, chia sẻ tệp và cộng tác. Có một số loại không gian:

  • Tin nhắn trực tiếp (DM) là các cuộc trò chuyện giữa hai người dùng hoặc một người dùng và ứng dụng Chat.
  • Cuộc trò chuyện nhóm là cuộc trò chuyện giữa 3 người dùng trở lên và ứng dụng Chat.
  • Không gian có tên là những không gian ổn định, nơi mọi người gửi tin nhắn, chia sẻ tệp và cộng tác.

Khi thiết lập không gian, hãy cân nhắc những điều sau:

  • Người dùng đang gọi (được xác thực) sẽ tự động được thêm vào không gian, vì vậy bạn không cần chỉ rõ tư cách thành viên của người dùng trong yêu cầu.
  • Khi tạo tin nhắn trực tiếp (DM), nếu có tin nhắn trực tiếp giữa hai người dùng, thì DM sẽ được trả về. Nếu không, hệ thống sẽ tạo một tin nhắn trực tiếp.
  • Khi tạo cuộc trò chuyện nhóm, nếu không có thành viên nào được cung cấp trong yêu cầu đã được thêm thành công vào cuộc trò chuyện nhóm (ví dụ: vấn đề về quyền), sau đó thì bạn có thể tạo một cuộc trò chuyện nhóm trống (chỉ bao gồm người dùng đang gọi).
  • Bạn không thể thiết lập các không gian có câu trả lời theo chuỗi hoặc thêm người bên ngoài Google Workspace.
  • Các gói thành viên trùng lặp (bao gồm cả người dùng gọi) được cung cấp trong yêu cầu sẽ bị lọc ra thay vì dẫn đến lỗi yêu cầu.

Điều kiện tiên quyết

Node.js

Python

Java

Apps Script

Thiết lập không gian

Để thiết lập không gian, hãy truyền những thông tin sau vào yêu cầu:

  • Chỉ định phạm vi uỷ quyền chat.spaces.create hoặc chat.spaces.
  • Gọi phương thức SetUpSpace().
  • Truyền space dưới dạng một thực thể của Space với tất cả các trường cần thiết như displayName hoặc spaceType.
  • Truyền memberships dưới dạng một mảng Membership thực thể. Đối với từng trường hợp:
    • Chỉ định users/{user} để thêm người dùng là con người làm thành viên không gian, trong đó {user}{person_id} cho person từ People API hoặc mã nhận dạng của user trong Directory API. Ví dụ: nếu người dùng API People resourceNamepeople/123456789, bạn có thể thêm người dùng đó vào không gian bằng cách thêm gói thành viên có users/123456789 làm member.name.
    • Chỉ định groups/{group} để thêm một nhóm làm thành viên không gian, trong đó {group} là mã nhóm mà bạn muốn tạo tư cách thành viên. Bạn có thể truy xuất mã nhận dạng của nhóm bằng Cloud Identity API. Ví dụ: nếu API Cloud Identity trả về một nhóm có tên groups/123456789, sau đó đặt membership.groupMember.name thành groups/123456789. Bạn không thể thêm Nhóm Google vào cuộc trò chuyện nhóm hoặc tin nhắn trực tiếp, mà chỉ có thể thêm vào không gian có tên.

Để tạo tin nhắn trực tiếp giữa người dùng đang gọi và một người dùng khác, hãy chỉ định một của người dùng trong yêu cầu của bạn.

Để tạo tin nhắn trực tiếp giữa người dùng gọi và ứng dụng gọi, hãy đặt space.singleUserBotDm thành true và không chỉ định bất kỳ gói thành viên nào. Bạn có thể chỉ sử dụng phương thức này để thiết lập tin nhắn trực tiếp với ứng dụng gọi. Để thêm phương thức gọi ứng dụng dưới dạng thành viên của không gian hoặc tin nhắn trực tiếp hiện có giữa hai người dùng, xem tạo gói thành viên.

Ví dụ sau đây sẽ tạo một không gian được đặt tên và tạo một thành viên cho không gian cho hai người dùng (người dùng đã xác thực và một người dùng khác).

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

Để chạy mẫu, hãy thay thế đoạn mã sau:

  • DISPLAY_NAME: tên hiển thị của không gian mới.
  • USER_NAME: mã của người dùng khác để đưa vào cho.

Để truy cập vào không gian, hãy sử dụng mã nhận dạng tài nguyên của không gian để tạo URL của không gian. Bạn có thể lấy mã nhận dạng tài nguyên từ không gian name trong nội dung phản hồi của Google Chat. Ví dụ: nếu name của không gian là spaces/1234567, bạn có thể truy cập vào không gian bằng URL sau: https://mail.google.com/chat/u/0/#chat/space/1234567.