Tạo không gian có tên trong Google Chat

Hướng dẫn này giải thích cách tạo một không gian có tên bằng phương thức create() trên tài nguyên Space của Google Chat API.

Không gian có tên (nơi spaceTypeSPACE) là nơi mọi người gửi tin nhắn, chia sẻ tệp và cộng tác. Không gian có tên có thể bao gồm các ứng dụng Chat. Không gian có tên có người quản lý không gian. Họ có thể áp dụng chế độ cài đặt quản trị, nội dung mô tả, cũng như thêm hoặc xoá người dùng và ứng dụng.

Để tạo nhiều loại không gian Chat (bao gồm cả tin nhắn trực tiếp hoặc tin nhắn theo nhóm), hãy sử dụng phương thức setUp() trên tài nguyên Space để tạo không gian và thêm thành viên cùng một lúc. Để biết thông tin chi tiết, hãy xem bài viết Thiết lập không gian.

Sau khi tạo một không gian có tên, thành viên duy nhất của không gian đó là người dùng đã xác thực. Để thêm thành viên vào không gian, hãy gọi phương thức create() trên tài nguyên Membership cho từng người hoặc ứng dụng mà bạn muốn thêm. Hoặc bạn có thể sử dụng phương thức setUp() để tạo một không gian có tên và thêm thành viên vào không gian đó cùng một lúc.

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

Node.js

Python

Java

Apps Script

Tạo không gian có tên với tư cách là người dùng

Để tạo một không gian có tên bằng xác thực người dùng, hãy truyền các thông tin sau trong yêu cầu của bạn:

  • Chỉ định phạm vi uỷ quyền chat.spaces.create hoặc chat.spaces.
  • Gọi phương thức CreateSpace(), truyền space dưới dạng một thực thể của Space với các trường sau:
    • Đã đặt spaceType thành SPACE.
    • displayName được đặt thành tên hiển thị cho người dùng của không gian.
    • Bạn có thể đặt các thuộc tính khác, chẳng hạn như sau:
      • spaceDetails– nội dung mô tả và bộ nguyên tắc mà người dùng nhìn thấy được cho không gian.
      • predefinedPermissionSettings – các quyền được xác định trước cho không gian. Ví dụ: bạn có thể định cấu hình để tất cả thành viên hoặc chỉ người quản lý không gian mới có thể đăng tin nhắn.

Dưới đây là cách tạo một không gian có tên:

Node.js

chat/client-libraries/cloud/create-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 create a named space 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'
    }
  };

  // Make the request
  const response = await chatClient.createSpace(request);

  // Handle the response
  console.log(response);
}

main().catch(console.error);

Python

chat/client-libraries/cloud/create_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 create_space_with_user_cred():
    # Create a client
    client = create_client_with_user_credentials(SCOPES)

    # Initialize request argument(s)
    request = google_chat.CreateSpaceRequest(
        space = {
            "space_type": 'SPACE',
            # Replace DISPLAY_NAME here.
            "display_name": 'DISPLAY_NAME'
        }
    )

    # Make the request
    response = client.create_space(request)

    # Handle the response
    print(response)

create_space_with_user_cred()

Java

chat/client-libraries/cloud/src/main/java/com/google/workspace/api/chat/samples/CreateSpaceUserCred.java
import com.google.chat.v1.ChatServiceClient;
import com.google.chat.v1.CreateSpaceRequest;
import com.google.chat.v1.Space;

// This sample shows how to create space with user credential.
public class CreateSpaceUserCred {

  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))) {
      CreateSpaceRequest.Builder request = CreateSpaceRequest.newBuilder()
        .setSpace(Space.newBuilder()
          .setSpaceType(Space.SpaceType.SPACE)
          // Replace DISPLAY_NAME here.
          .setDisplayName("DISPLAY_NAME"));
      Space response = chatServiceClient.createSpace(request.build());

      System.out.println(JsonFormat.printer().print(response));
    }
  }
}

Apps Script

chat/advanced-service/Main.gs
/**
 * This sample shows how to create space 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 createSpaceUserCred() {
  // Initialize request argument(s)
  const space = {
    spaceType: 'SPACE',
    // TODO(developer): Replace DISPLAY_NAME here
    displayName: 'DISPLAY_NAME'
  };

  // Make the request
  const response = Chat.Spaces.create(space);

  // Handle the response
  console.log(response);
}

Tạo không gian có tên dưới dạng ứng dụng Chat

Để xác thực ứng dụng, bạn cần có sự phê duyệt một lần của quản trị viên.

Để mời hoặc thêm người dùng vào một không gian bằng xác thực ứng dụng, hãy truyền các thông tin sau trong yêu cầu của bạn:

  • Chỉ định phạm vi uỷ quyền chat.app.spaces.create hoặc chat.app.spaces.
  • Gọi phương thức create trên tài nguyên Space.
  • Đặt spaceType thành SPACE.
  • Đặt displayName thành tên hiển thị cho người dùng của không gian. Trong ví dụ sau, displayName được đặt thành API-made.
  • Chỉ định mã khách hàng của miền Google Workspace bằng trường customer.
  • Bạn có thể đặt các thuộc tính khác của không gian, chẳng hạn như spaceDetails (nội dung mô tả mà người dùng có thể thấy và bộ nguyên tắc cho không gian).

Tạo một khoá API

Để gọi một phương thức API trong bản dùng thử cho nhà phát triển, bạn phải sử dụng một phiên bản không công khai của tài liệu khám phá API trong bản dùng thử cho nhà phát triển. Để xác thực yêu cầu, bạn phải truyền một khoá API.

Để tạo Khoá API, hãy mở dự án Google Cloud của ứng dụng rồi làm như sau:

  1. Trong bảng điều khiển Google Cloud, hãy chuyển đến phần Trình đơn > API và Dịch vụ > Thông tin xác thực.

    Chuyển đến phần Thông tin đăng nhập

  2. Nhấp vào Tạo thông tin xác thực > Khoá API.
  3. Khoá API mới của bạn sẽ xuất hiện.
    • Nhấp vào biểu tượng Sao chép để sao chép khoá API nhằm sử dụng trong mã của ứng dụng. Bạn cũng có thể tìm thấy khoá API trong phần "Khoá API" của thông tin đăng nhập dự án.
    • Nhấp vào Hạn chế khoá để cập nhật chế độ cài đặt nâng cao và giới hạn việc sử dụng khoá API. Để biết thêm thông tin chi tiết, hãy xem phần Áp dụng các quy tắc hạn chế đối với khoá API.

Viết một tập lệnh gọi API Chat

Dưới đây là cách tạo một không gian có tên:

Python

  1. Trong thư mục làm việc, hãy tạo một tệp có tên là chat_space_create_named_app.py.
  2. Thêm mã sau vào chat_space_create_named_app.py:

    from google.oauth2 import service_account
    from apiclient.discovery import build
    
    # Define your app's authorization scopes.
    # When modifying these scopes, delete the file token.json, if it exists.
    SCOPES = ["https://www.googleapis.com/auth/chat.app.spaces.create"]
    
    def main():
        '''
        Authenticates with Chat API using app authentication,
        then creates a Chat space.
        '''
    
        # Specify service account details.
        creds = (
            service_account.Credentials.from_service_account_file('credentials.json')
            .with_scopes(SCOPES)
        )
    
        # Build a service endpoint for Chat API.
        chat = build('chat', 'v1', credentials=creds, discoveryServiceUrl='https://chat.googleapis.com/$discovery/rest?version=v1&labels=DEVELOPER_PREVIEW&key=API_KEY')
    
        # Use the service endpoint to call Chat API.
        result = chat.spaces().create(
    
          # Details about the space to create.
          body = {
    
            # To create a named space, set spaceType to SPACE.
            'spaceType': 'SPACE',
    
            # The user-visible name of the space.
            'displayName': 'API-made',
    
            # The customer ID of the Workspace domain.
            'customer': 'CUSTOMER'
          }
    
          ).execute()
    
        # Prints details about the created space.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. Trong mã, hãy thay thế những nội dung sau:

    • API_KEY: khoá API mà bạn đã tạo để xây dựng điểm cuối dịch vụ cho Chat API.

    • CUSTOMER: mã nhận dạng khách hàng của miền của không gian ở định dạng customer/{customer}, trong đó {customer}ID từ tài nguyên khách hàng Admin SDK. Để tạo một không gian trong cùng một tổ chức Google Workspace với ứng dụng Chat, hãy sử dụng biểu tượng customers/my_customer.

  4. Trong thư mục làm việc, hãy tạo và chạy mẫu:

    python3 chat_space_create_named_app.py

Mở không gian trong Google Chat

Để chuyển đến không gian, hãy 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ể tìm thấy mã nhận dạng tài nguyên từ name không gian 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ể chuyển đến không gian đó bằng URL sau: https://mail.google.com/chat/u/0/#chat/space/1234567.

Các điểm hạn chế và điều cần cân nhắc

  • Khi bạn tạo một không gian bằng cách sử dụng xác thực ứng dụng, ứng dụng Chat xác thực sẽ được thêm làm thành viên của không gian, nhưng không phải là người quản lý không gian (không giống như xác thực người dùng). Theo mặc định, tất cả thành viên trong không gian đều có thể xoá ứng dụng Chat. Để chỉ cho phép người quản lý không gian xoá ứng dụng Chat, hãy đặt permissionSettings.manageApps thành managersAllowed.