Bắt đầu nhanh Node.js

Quickstarts giải thích cách thiết lập và chạy một ứng dụng gọi API Google Workspace.

Tính năng bắt đầu nhanh của Google Workspace sử dụng các 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 bạn sử dụng thư viện ứng dụng cho ứng dụng của riêng mình. Bước bắt đầu nhanh này sử dụng phương pháp xác thực đơn giản, phù hợp cho thử nghiệm môi trường. Đối với môi trường sản xuất, bạn nên tìm hiểu về xác thực và uỷ quyền trước chọn thông tin đăng nhập phù hợp với ứng dụng của bạn.

Tạo ứng dụng dòng lệnh Node.js để thực hiện yêu cầu đến API Nhãn Drive.

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

  • Tài khoản Google.

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

Để hoàn tất quy trình bắt đầu 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 các API của Google, bạn cần bật các API này trong một dự án trên Google Cloud. Bạn có thể bật một hoặc nhiều API trong một dự án Google Cloud.
  • Trong bảng điều khiển Google Cloud, hãy bật API Drive Nhãn.

    Bật API

Cấp thông tin đăng nhập cho ứng dụng dành cho 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 của mình, bạn cần phải tạo một hoặc nhiều Mã ứng dụng OAuth 2.0. Mã ứng dụng khách được dùng để xác định một ứng dụng vào 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 khách riêng cho từng nền tảng.
  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 > Mã ứng dụng khách OAuth.
  3. Nhấp vào Loại ứng dụng > Ứng dụng dành cho máy tính.
  4. Trong trường Tên, nhập tên cho thông tin đăng nhập. Tên này chỉ hiển thị trong bảng điều khiển Google Cloud.
  5. Nhấp vào Tạo. Màn hình OAuth do ứng dụng tạo sẽ xuất hiện, cho biết Mã ứng dụng khách và Mật khẩu ứng dụng mới của bạn.
  6. Nhấp vào OK. Thông tin đăng nhập mới được tạo sẽ xuất hiện trong phần Mã ứng dụng OAuth 2.0.
  7. Lưu tệp JSON đã tải xuống dưới dạng credentials.json và di chuyển vào thư mục đang làm việc của bạn.

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

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

    npm install googleapis@113 @google-cloud/local-auth@2.1.1 --save
    

Thiết lập mẫu

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

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

        const fs = require('fs');
        const readline = require('readline');
        const {google} = require('googleapis');
    
        // If modifying these scopes, delete token.json.
        const SCOPES = ['https://www.googleapis.com/auth/drive.labels.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 = 'token.json';
    
        // Load client secrets from a local file.
        fs.readFile('credentials.json', (err, content) => {
          if (err) return console.log('Error loading client secret file:', err);
          // Authorize a client with credentials, then call the Google Drive Labels
          // API.
          authorize(JSON.parse(content), listDriveLabels);
        });
    
        /**
        * Create an OAuth2 client with the given credentials, and then execute the
        * given callback function.
        * @param {Object} credentials The authorization client credentials.
        * @param {function} callback The callback to call with the authorized client.
        */
        function authorize(credentials, callback) {
          const {client_secret, client_id, redirect_uris} = credentials.installed;
          const oAuth2Client = new google.auth.OAuth2(
              client_id, client_secret, redirect_uris[0]);
    
          // Check if we have previously stored a token.
          fs.readFile(TOKEN_PATH, (err, token) => {
            if (err) return getNewToken(oAuth2Client, callback);
            oAuth2Client.setCredentials(JSON.parse(token));
            callback(oAuth2Client);
          });
        }
    
        /**
        * Get and store new token after prompting for user authorization, and then
        * execute the given callback with the authorized OAuth2 client.
        * @param {google.auth.OAuth2} oAuth2Client The OAuth2 client to get token for.
        * @param {getEventsCallback} callback The callback for the authorized client.
        */
        function getNewToken(oAuth2Client, callback) {
          const authUrl = oAuth2Client.generateAuthUrl({
            access_type: 'offline',
            scope: SCOPES,
          });
          console.log('Authorize this app by visiting this url:', authUrl);
          const rl = readline.createInterface({
            input: process.stdin,
            output: process.stdout,
          });
          rl.question('Enter the code from that page here: ', (code) => {
            rl.close();
            oAuth2Client.getToken(code, (err, token) => {
              if (err) return console.error('Error retrieving access token', err);
              oAuth2Client.setCredentials(token);
              // Store the token to disk for later program executions
              fs.writeFile(TOKEN_PATH, JSON.stringify(token), (err) => {
                if (err) return console.error(err);
                console.log('Token stored to', TOKEN_PATH);
              });
              callback(oAuth2Client);
            });
          });
        }
    
        function listDriveLabels(auth) {
          const service = google.drivelabels({version: 'v2', auth});
          const params = {
            'view': 'LABEL_VIEW_FULL'
          };
          service.labels.list(params, (err, res) => {
            if (err) return console.error('The API returned an error: ' + err);
            const labels = res.data.labels;
            if (labels) {
              labels.forEach((label) => {
                const name = label.name;
                const title = label.properties.title;
                console.log(`${name}\t${title}`);
              });
            } else {
              console.log('No Labels');
            }
          });
        }
    

Chạy mẫu

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

    node .
    
  2. Trong lần đầu chạy mẫu, bạn sẽ được nhắc cấp quyền truy cập:

    1. Nếu chưa đăng nhập vào Tài khoản Google, bạn được nhắc đăng nhập. Nếu bạn đã đăng nhập vào nhiều tài khoản, chọn một tài khoản để dùng để uỷ quyền.
    2. Nhấp vào Chấp nhận.

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

Bạn đã tạo thành công ứng dụng Nodejs đầu tiên để thực hiện yêu cầu vào API Drive Nhãn.

Các bước tiếp theo