Hướng dẫn bắt đầu nhanh về Node.js

Phần bắt đầu nhanh giải thích cách thiết lập và chạy một ứng dụng gọi API Google Workspace.

Các hướng dẫn nhanh về Google Workspace sử dụng thư viện ứng dụng API để xử lý một số thông tin chi tiết về quy trình xác thực và uỷ quyền. Bạn nên sử dụng thư viện ứng dụng cho các ứng dụng của riêng mình. Phần bắt đầu nhanh này sử dụng phương pháp xác thực đơn giản phù hợp với môi trường thử nghiệm. Đối với môi trường phát hành công khai, bạn nên tìm hiểu về quy trình xác thực và uỷ quyền trước khi chọn thông tin xác thực truy cập phù hợp với ứng dụng của mình.

Tạo một ứng dụng dòng lệnh Node.js để gửi yêu cầu đến API Google Chat.

Mục tiêu

  • Thiết lập môi trường.
  • Cài đặt thư viện ứng dụng.
  • Thiết lập mẫu.
  • Chạy mẫu.

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

Để chạy hướng dẫn bắt đầu nhanh này, bạn cần có các điều kiện tiên quyết sau:

Thiết lập môi trường

Để hoàn tất hướng dẫn nhanh này, hãy thiết lập môi trường của bạn.

Bật API

Trước khi sử dụng API của Google, bạn cần bật các API đó trong một dự án Google Cloud. Bạn có thể bật một hoặc nhiều API trong một dự án Google Cloud.
  • Trong Google Cloud Console, hãy bật API Google Chat.

    Bật API

Nếu bạn đang sử dụng một dự án Google Cloud mới để hoàn tất hướng dẫn nhanh này, hãy định cấu hình màn hình đồng ý OAuth. Nếu bạn đã hoàn tất bước này cho dự án trên Cloud, hãy chuyển sang phần tiếp theo.

  1. Trong Google Cloud Console, hãy chuyển đến Trình đơn > > Tạo thương hiệu.

    Chuyển đến phần Thương hiệu

  2. Nếu đã định cấu hình , bạn có thể định cấu hình các chế độ cài đặt sau đây cho Màn hình đồng ý OAuth trong phần Gắn thương hiệu, Đối tượngQuyền truy cập dữ liệu. Nếu bạn thấy thông báo chưa được định cấu hình, hãy nhấp vào Bắt đầu:
    1. Trong phần Thông tin ứng dụng, trong mục Tên ứng dụng, hãy nhập tên cho ứng dụng.
    2. Trong phần Email hỗ trợ người dùng, hãy chọn địa chỉ email hỗ trợ mà người dùng có thể liên hệ với bạn nếu họ có câu hỏi về sự đồng ý của họ.
    3. Nhấp vào Tiếp theo.
    4. Trong phần Đối tượng người xem, hãy chọn Nội bộ.
    5. Nhấp vào Tiếp theo.
    6. Trong phần Thông tin liên hệ, hãy nhập Địa chỉ email để bạn có thể nhận thông báo về mọi thay đổi đối với dự án của mình.
    7. Nhấp vào Tiếp theo.
    8. Trong phần Hoàn tất, hãy xem lại Chính sách dữ liệu người dùng của Dịch vụ API của Google. Nếu bạn đồng ý, hãy chọn Tôi đồng ý với Chính sách dữ liệu người dùng của Dịch vụ API của Google.
    9. Nhấp vào Tiếp tục.
    10. Nhấp vào Tạo.
  3. Hiện tại, bạn có thể bỏ qua bước thêm phạm vi. Sau này, khi tạo một ứng dụng để sử dụng bên ngoài tổ chức Google Workspace, bạn phải thay đổi Loại người dùng thành Bên ngoài. Sau đó, thêm các phạm vi uỷ quyền mà ứng dụng của bạn yêu cầu. Để tìm hiểu thêm, hãy xem hướng dẫn đầy đủ về cách Định cấu hình sự đồng ý OAuth.

Uỷ quyền thông tin xác thực cho ứng dụng trên máy tính

Để xác thực người dùng cuối và truy cập vào dữ liệu người dùng trong ứng dụng, bạn cần tạo một hoặc nhiều mã ứng dụng khách OAuth 2.0. Mã ứng dụng khách được dùng để xác định một ứng dụng duy nhất với các máy chủ OAuth của Google. Nếu ứng dụng của bạn chạy trên nhiều nền tảng, bạn phải tạo một mã ứng dụng riêng cho mỗi nền tảng.
  1. Trong Google Cloud Console, hãy chuyển đến Trình đơn > > Ứng dụng.

    Chuyển đến ứng dụng

  2. Nhấp vào Tạo ứng dụng.
  3. Nhấp vào Loại ứng dụng > Ứng dụng dành cho máy tính.
  4. Trong trường Name (Tên), hãy nhập tên cho thông tin xác thực. Tên này chỉ xuất hiện trong Google Cloud Console.
  5. Nhấp vào Tạo.

    Thông tin xác thực mới tạo sẽ xuất hiện trong phần "Mã ứng dụng khách OAuth 2.0".

  6. Lưu tệp JSON đã tải xuống dưới dạng credentials.json và di chuyển tệp đó vào thư mục đang hoạt động.

Định cấu hình ứng dụng Google Chat

Để gọi API Google Chat, bạn phải định cấu hình ứng dụng Google Chat. Đối với mọi yêu cầu ghi, Google Chat sẽ phân bổ ứng dụng Google Chat trong giao diện người dùng bằng cách sử dụng thông tin sau.

  1. Trong Google Cloud Console, hãy chuyển đến trang Cấu hình của Chat API:

    Chuyển đến trang Cấu hình Chat API

  2. Trong phần Thông tin ứng dụng, hãy nhập những thông tin sau:

    1. Trong trường App name (Tên ứng dụng), hãy nhập Chat API quickstart app.
    2. Trong trường Avatar URL (URL hình đại diện), hãy nhập https://developers.google.com/chat/images/quickstart-app-avatar.png.
    3. Trong trường Description (Mô tả), hãy nhập Quickstart for calling the Chat API.
  3. Trong phần Tính năng tương tác, hãy nhấp vào nút bật/tắt Bật tính năng tương tác sang vị trí tắt để tắt tính năng tương tác cho ứng dụng Chat.

  4. Nhấp vào Lưu.

Cài đặt thư viện ứng dụng

  • Cài đặt thư viện bằng npm:

    npm install @google-apps/chat @google-cloud/local-auth@2.1.0 --save
    

Thiết lập mẫu

  1. Trong thư mục đang hoạt động, hãy tạo một tệp có tên index.js.

  2. Trong tệp, hãy dán mã sau:

    chat/quickstart/index.js
    const fs = require('fs').promises;
    const path = require('path');
    const process = require('process');
    const {authenticate} = require('@google-cloud/local-auth');
    const {ChatServiceClient} = require('@google-apps/chat');
    const {auth} = require('google-auth-library');
    
    // If modifying these scopes, delete token.json.
    const SCOPES = ['https://www.googleapis.com/auth/chat.spaces.readonly'];
    
    // The file token.json stores the user's access and refresh tokens, and is
    // created automatically when the authorization flow completes for the first
    // time.
    const TOKEN_PATH = path.join(process.cwd(), 'token.json');
    const CREDENTIALS_PATH = path.join(process.cwd(), 'credentials.json');
    
    /**
     * Reads previously authorized credentials from the save file.
     *
     * @return {Promise<OAuth2Client|null>}
     */
    async function loadSavedCredentialsIfExist() {
      try {
        const content = await fs.readFile(TOKEN_PATH);
        const credentials = JSON.parse(content);
        return auth.fromJSON(credentials);
      } catch (err) {
        console.log(err);
        return null;
      }
    }
    
    /**
     * Serializes credentials to a file compatible with GoogleAuth.fromJSON.
     *
     * @param {OAuth2Client} client
     * @return {Promise<void>}
     */
    async function saveCredentials(client) {
      const content = await fs.readFile(CREDENTIALS_PATH);
      const keys = JSON.parse(content);
      const key = keys.installed || keys.web;
      const payload = JSON.stringify({
        type: 'authorized_user',
        client_id: key.client_id,
        client_secret: key.client_secret,
        refresh_token: client.credentials.refresh_token,
      });
      await fs.writeFile(TOKEN_PATH, payload);
    }
    
    /**
     * Load or request or authorization to call APIs.
     *
     * @return {Promise<OAuth2Client>}
     */
    async function authorize() {
      let client = await loadSavedCredentialsIfExist();
      if (client) {
        return client;
      }
      client = await authenticate({
        scopes: SCOPES,
        keyfilePath: CREDENTIALS_PATH,
      });
      if (client.credentials) {
        await saveCredentials(client);
      }
      return client;
    }
    
    /**
     * Lists spaces with user credential.
     * @param {OAuth2Client} authClient An authorized OAuth2 client.
     */
    async function listSpaces(authClient) {
      // Create a client
      const chatClient = new ChatServiceClient({
        authClient: authClient,
        scopes: SCOPES,
      });
    
      // Initialize request argument(s)
      const request = {
        // Filter spaces by space type (SPACE or GROUP_CHAT or DIRECT_MESSAGE)
        filter: 'space_type = "SPACE"'
      };
    
      // Make the request
      const pageResult = chatClient.listSpacesAsync(request);
    
      // Handle the response. Iterating over pageResult will yield results and
      // resolve additional pages automatically.
      for await (const response of pageResult) {
        console.log(response);
      }
    }
    
    authorize().then(listSpaces).catch(console.error);

Chạy mẫu

  1. Trong thư mục đang hoạt động, hãy chạy mẫu:

    node .
    
  1. Lần đầu tiên chạy mẫu, bạn sẽ được nhắc uỷ quyền truy cập:
    1. Nếu bạn chưa đăng nhập vào Tài khoản Google, hãy đăng nhập khi được nhắc. Nếu bạn đã đăng nhập vào nhiều tài khoản, hãy chọn một tài khoản để sử dụng cho việc uỷ quyền.
    2. Nhấp vào Chấp nhận.

    Ứng dụng Nodejs của bạn sẽ chạy và gọi API Google Chat.

    Thông tin uỷ quyền được lưu trữ trong hệ thống tệp, vì vậy, lần tiếp theo bạn chạy mã mẫu, bạn sẽ không được nhắc uỷ quyền.

Các bước tiếp theo