Tạo không gian

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

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à các cuộc trò chuyện giữa ba người dùng trở lên và Ứng dụng nhắn tin.
  • 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.

Không gian được đặt tên là nơi mọi người gửi tin nhắn, chia sẻ tệp và cộng tác. Các không gian được đặt tên có thể bao gồm các ứng dụng trong Chat. Không gian có tên có thêm các tính năng mà cuộc trò chuyện nhóm và tin nhắn trực tiếp không có tên không có, chẳng hạn như người quản lý không gian 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. Sau khi tạo một không gian có tên, người dùng đã xác thực sẽ là thành viên duy nhất của không gian đó. Không gian không bao gồm người hoặc ứng dụng khác; kể cả ứng dụng Chat tạo ra ứng dụng đó. Để thêm thành viên vào không gian, hãy xem phần Tạo gói thành viên.

Để tạo một không gian được đặt tên có nhiều thành viên — một cuộc trò chuyện nhóm chưa đặt tên giữa ba người trở lên hoặc một cuộc trò chuyện bằng tin nhắn trực tiếp giữa hai người hoặc một và ứng dụng Chat gọi API Chat – thiết lập một không gian thay thế.

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

Node.js

Python

Java

Apps Script

Tạo không gian có tên khi là người dùng

Để tạo không gian được đặt tên bằng xác thực người dùng, chuyển những nội dung 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 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 không gian mà người dùng nhìn thấy.
    • Bạn có thể đặt các thuộc tính khác (không bắt buộc), chẳng hạn như:
      • spaceDetails – nội dung mô tả hiển thị cho người dùng và bộ nguyên tắc cho không gian.
      • predefinedPermissionSettings – quyền được xác định trước cho không gian. Ví dụ: bạn có thể thiết lập chế độ sao cho tất cả thành viên hoặc chỉ không gian người quản lý có thể đăng tin nhắn.

Dưới đây là cách tạo một không gian được đặt 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 tên dưới dạng ứng dụng Chat

Quy trình xác thực ứng dụng yêu cầu quyền phê duyệt của quản trị viên một lần.

Để mời hoặc thêm người dùng vào không gian có xác thực ứng dụng, chuyển những nội dung sau trong yêu cầu của bạn:

  • Chỉ định lệnh uỷ quyền chat.app.spaces.create hoặc chat.app.spaces phạm vi.
  • Gọi Phương thức create trên Space tài nguyên.
  • Đặt spaceType thành SPACE.
  • Đặt displayName thành tên không gian mà người dùng nhìn thấy. 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 nhìn thấy và bộ nguyên tắc cho không gian).

Tạo một khoá API

Để gọi phương thức API Bản dùng thử cho nhà phát triển, bạn phải sử dụng phiên bản bản dùng thử không công khai dành cho nhà phát triển của tài liệu khám phá API. Để 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 Trình đơn > API và dịch vụ > Thông tin xác thực.

    Chuyển đến phần Thông tin xác thực

  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 để sử dụng trong mã của ứng dụng. Khoá API cũng có thể là có trong "khoá API" trong thông tin đăng nhập của dự án.
    • Nhấp vào Hạn chế khoá để cập nhật các chế độ cài đặt nâng cao và hạn chế việc sử dụng của khoá API. Để biết thêm thông tin, hãy xem phần Áp dụng các quy tắc hạn chế đối với khoá API.

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

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

Python

  1. Trong thư mục đang làm việc, hãy tạo một tệp có tên 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ế các nội dung sau:

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

    • CUSTOMER: mã 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 SDK quản trị. Cách tạo không gian trong cùng tổ chức trên Google Workspace với ứng dụng Chat, hãy dùng customers/my_customer.

  4. Trong thư mục đang hoạt động, hãy tạo bản dựng 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 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ể tìm thấy mã nhận dạng tài nguyên từ không gian name trong phần 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.