Dịch vụ trò chuyện nâng cao

Dịch vụ Chat nâng cao cho phép bạn sử dụng API Google Chat trong Apps Script. API này cho phép tập lệnh tìm, tạo và sửa đổi các không gian Chat, thêm hoặc xoá thành viên khỏi không gian, cũng như đọc hoặc đăng tin nhắn có văn bản, thẻ, tệp đính kèm và biểu tượng cảm xúc.

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

Tài liệu tham khảo

Để biết thêm thông tin về dịch vụ này, hãy xem tài liệu tham khảo về Chat API. Giống như tất cả các dịch vụ nâng cao trong Apps Script, dịch vụ Chat sử dụng các đối tượng, phương thức và tham số giống như API công khai.

Mã mẫu

Các mẫu này cho bạn biết cách thực hiện các thao tác phổ biến trong API Google Chat bằng cách sử dụng dịch vụ nâng cao.

Đăng thông báo có thông tin đăng nhập của người dùng

Ví dụ sau đây minh hoạ cách thay mặt người dùng đăng thông báo vào một không gian Chat.

  1. Thêm phạm vi uỷ quyền chat.messages.create vào tệp appsscript.json của dự án Apps Script:

    "oauthScopes": [
      "https://www.googleapis.com/auth/chat.messages.create"
    ]
    
  2. Thêm một hàm như hàm này vào mã của dự án Apps Script:

    advanced/chat.gs
    /**
     * Posts a new message to the specified space on behalf of the user.
     * @param {string} spaceName The resource name of the space.
     */
    function postMessageWithUserCredentials(spaceName) {
      try {
        const message = {'text': 'Hello world!'};
        Chat.Spaces.Messages.create(message, spaceName);
      } catch (err) {
        // TODO (developer) - Handle exception
        console.log('Failed to create message with error %s', err.message);
      }
    }

Đăng thông báo có thông tin xác thực ứng dụng

Ví dụ sau đây minh hoạ cách thay mặt ứng dụng đăng thông báo vào một không gian Chat. Khi sử dụng dịch vụ Chat nâng cao bằng tài khoản dịch vụ, bạn không cần chỉ định phạm vi uỷ quyền trong appsscript.json. Để biết thông tin chi tiết về việc xác thực bằng tài khoản dịch vụ, hãy xem phần Xác thực dưới dạng ứng dụng Google Chat.

advanced/chat.gs
/**
 * Posts a new message to the specified space on behalf of the app.
 * @param {string} spaceName The resource name of the space.
 */
function postMessageWithAppCredentials(spaceName) {
  try {
    // See https://developers.google.com/chat/api/guides/auth/service-accounts
    // for details on how to obtain a service account OAuth token.
    const appToken = getToken_();
    const message = {'text': 'Hello world!'};
    Chat.Spaces.Messages.create(
        message,
        spaceName,
        {},
        // Authenticate with the service account token.
        {'Authorization': 'Bearer ' + appToken});
  } catch (err) {
    // TODO (developer) - Handle exception
    console.log('Failed to create message with error %s', err.message);
  }
}

Mua không gian

Ví dụ sau đây minh hoạ cách lấy thông tin về một không gian trò chuyện.

  1. Thêm phạm vi uỷ quyền chat.spaces.readonly vào tệp appsscript.json của dự án Apps Script:

    "oauthScopes": [
      "https://www.googleapis.com/auth/chat.spaces.readonly"
    ]
    
  2. Thêm một hàm như hàm này vào mã của dự án Apps Script:

    advanced/chat.gs
    /**
     * Gets information about a Chat space.
     * @param {string} spaceName The resource name of the space.
     */
    function getSpace(spaceName) {
      try {
        const space = Chat.Spaces.get(spaceName);
        console.log('Space display name: %s', space.displayName);
        console.log('Space type: %s', space.spaceType);
      } catch (err) {
        // TODO (developer) - Handle exception
        console.log('Failed to get space with error %s', err.message);
      }
    }

Tạo không gian

Ví dụ sau đây minh hoạ cách tạo không gian Chat.

  1. Thêm phạm vi uỷ quyền chat.spaces.create vào tệp appsscript.json của dự án Apps Script:

    "oauthScopes": [
      "https://www.googleapis.com/auth/chat.spaces.create"
    ]
    
  2. Thêm một hàm như hàm này vào mã của dự án Apps Script:

    advanced/chat.gs
    /**
     * Creates a new Chat space.
     */
    function createSpace() {
      try {
        const space = {'displayName': 'New Space', 'spaceType': 'SPACE'};
        Chat.Spaces.create(space);
      } catch (err) {
        // TODO (developer) - Handle exception
        console.log('Failed to create space with error %s', err.message);
      }
    }

Liệt kê gói thành viên

Ví dụ sau đây minh hoạ cách liệt kê tất cả thành viên của một không gian trò chuyện.

  1. Thêm phạm vi uỷ quyền chat.memberships.readonly vào tệp appsscript.json của dự án Apps Script:

    "oauthScopes": [
      "https://www.googleapis.com/auth/chat.memberships.readonly"
    ]
    
  2. Thêm một hàm như hàm này vào mã của dự án Apps Script:

    advanced/chat.gs
    /**
     * Lists all the members of a Chat space.
     * @param {string} spaceName The resource name of the space.
     */
    function listMemberships(spaceName) {
      let response;
      let pageToken = null;
      try {
        do {
          response = Chat.Spaces.Members.list(spaceName, {
            pageSize: 10,
            pageToken: pageToken
          });
          if (!response.memberships || response.memberships.length === 0) {
            pageToken = response.nextPageToken;
            continue;
          }
          response.memberships.forEach((membership) => console.log(
              'Member resource name: %s (type: %s)',
              membership.name,
              membership.member.type));
          pageToken = response.nextPageToken;
        } while (pageToken);
      } catch (err) {
        // TODO (developer) - Handle exception
        console.log('Failed with error %s', err.message);
      }
    }

Khắc phục sự cố

Nếu bạn gặp Error 400: invalid_scope với thông báo lỗi Some requested scopes cannot be shown, thì tức là bạn chưa chỉ định bất kỳ phạm vi uỷ quyền nào trong tệp appsscript.json của dự án Apps Script. Trong hầu hết các trường hợp, Apps Script sẽ tự động xác định phạm vi mà tập lệnh cần, nhưng khi sử dụng dịch vụ nâng cao Chat, bạn phải thêm phạm vi uỷ quyền mà tập lệnh sử dụng vào tệp kê khai của dự án Apps Script theo cách thủ công. Xem phần Đặt phạm vi rõ ràng.

Để giải quyết lỗi này, hãy thêm các phạm vi uỷ quyền thích hợp vào tệp appsscript.json của dự án Apps Script như một phần của mảng oauthScopes. Ví dụ: để gọi phương thức spaces.messages.create, hãy thêm nội dung sau:

"oauthScopes": [
  "https://www.googleapis.com/auth/chat.messages.create"
]

Giới hạn và điều cần cân nhắc

Dịch vụ Chat nâng cao không hỗ trợ:

Để tải tệp đính kèm của thư xuống hoặc gọi phương thức xem trước dành cho nhà phát triển, hãy sử dụng UrlFetchApp.