Google Sheets API Tutoriel : Bắt đầu với những kiến thức cơ bản

Video google sheets api create new sheet

Chào mừng bạn đến với hướng dẫn về Google Sheets API của chúng tôi! Trong bài viết này, chúng tôi sẽ khám phá các tính năng chính của Google Sheets API và hướng dẫn cách sử dụng nó để thực hiện các hoạt động CRUD cơ bản. Dù bạn là người mới bắt đầu hay là một nhà phát triển có kinh nghiệm, hướng dẫn này sẽ cung cấp cho bạn những kiến thức cần thiết để tận dụng tốt nhất Google Sheets API.

Yêu cầu tiên quyết cho hướng dẫn về Google Sheets API

Trước khi bắt đầu, hãy đảm bảo bạn có một số kiến thức cơ bản về JavaScript và Node.js. Bạn cũng cần cài đặt Node.js và npm trên máy tính của bạn, cùng với một trình chỉnh sửa mã như VS Code. Cuối cùng, bạn cần có một tài khoản Google để truy cập vào Google Sheets API.

Cấu hình dự án

Để sử dụng Google Sheets API, bạn cần một dự án Google Cloud Platform với API được kích hoạt, cũng như thông tin xác thực của bạn. Hãy làm theo các bước dưới đây để lấy các thông tin này.

Bước 1: Tạo một dự án mới

Mở Bảng điều khiển Google Cloud, sau đó tạo một dự án mới.

Create a New Project

Bước 2: Kích hoạt API và dịch vụ

Nhấp vào menu ở góc trên bên trái, sau đó chọn “APIs and Services” > “Enabled APIs and Services”.

Tiếp theo, nhấp vào nút “+ Enable APIs and Services”.

Enable API and Services

Bước 3: Tạo một tài khoản dịch vụ

Bây giờ khi API đã được kích hoạt, bạn sẽ được chuyển hướng đến một trang để cấu hình các thông số của API.

Nhấp vào tab “Credentials” ở thanh bên trái, sau đó nhấp vào nút “Create Credentials” ở trên cùng.

Tiếp theo, chọn “Service Account” trong menu thả xuống.

Create a Service Account

Trên màn hình tiếp theo, cung cấp thông tin cho tài khoản dịch vụ yêu cầu, sau đó nhấp vào “Create and Continue”.

Service Account Details

Nhấp vào “Continue” và “Done” lần lượt trên hai hộp thoại tiếp theo.

Tiếp theo, tài khoản dịch vụ bạn vừa tạo sẽ xuất hiện trên trang thông tin xác thực.

Sao chép địa chỉ email của tài khoản dịch vụ vào clipboard, vì chúng ta sẽ cần nó sau này để chia sẻ bảng với tài khoản này.

Bạn sẽ được chuyển hướng đến màn hình tiếp theo, nơi chúng ta sẽ tạo một khóa mới. Để làm điều này, nhấp vào tab “Keys”, sau đó nhấp vào nút “Add Key”.

Chọn tùy chọn “Create New Key”, sau đó chọn loại khóa “JSON”.

Create a Key

Cuối cùng, đổi tên tệp JSON đã tải xuống và di chuyển nó vào thư mục dự án của bạn. Tệp khóa này chứa thông tin xác thực của tài khoản dịch vụ mà chúng ta cần trong script Node.js của mình để truy cập vào Google Sheets.

Cách sử dụng Google Sheets API

Bây giờ chúng ta đã cấu hình dự án và thông tin xác thực của nó trong Bảng điều khiển Google Cloud, hãy khám phá cách sử dụng các chức năng cơ bản của Google Sheets API.

Tạo một bảng dữ liệu

Trước khi bắt đầu viết mã, hãy truy cập vào Google Sheets và tạo một bảng mới. Nhập các dữ liệu giả để chúng ta có một cái gì đó để trích xuất khi kiểm tra API.

Bây giờ, hãy thêm địa chỉ email của tài khoản dịch vụ và gán cho nó vai trò Biên tập viên, cho phép nó có quyền đọc, ghi, cập nhật và xóa dữ liệu.

Nhấp vào nút “Chia sẻ” ở góc trên bên phải. Điều này sẽ mở một cửa sổ hiển thị nơi chúng tôi sẽ chia sẻ bảng với tài khoản dịch vụ. Đảm bảo bỏ chọn hộp “Thông báo cho mọi người”.

Nhấp vào nút “Chia sẻ” để chia sẻ bảng với tài khoản dịch vụ.

Cấu hình ứng dụng

Bây giờ chúng ta đã hoàn tất cấu hình, hãy chuyển sang viết mã. Mở trình chỉnh sửa mã của bạn và tạo một thư mục dự án mới. Tôi sẽ sử dụng VS Code. Bạn cũng có thể sử dụng Runme để chạy ứng dụng ví dụ trên máy cục bộ.

Sao chép và dán tệp khóa đã tải xuống vào thư mục gốc. Đổi tên tệp để nó đơn giản hơn, ví dụ như “keys.json”.

Tiếp theo, hãy điều hướng đến thư mục gốc của dự án, mở terminal tích hợp trong VS Code và chạy lệnh sau:

npm init -y

Lệnh này sẽ khởi tạo thư mục và tạo một tệp package.json trống, chứa thông tin quan trọng về dự án như các phụ thuộc và phiên bản của dự án.

Tiếp theo, chúng ta sẽ cài đặt một số phụ thuộc:

npm install googleapis express

Sau khi quá trình cài đặt hoàn tất, chạy mã sau để cài đặt nodemon như một phụ thuộc phát triển:

npm install nodemon --save-dev

Sau khi chạy các lệnh trên, bạn sẽ có một tệp package-lock.json và một thư mục node_modules.

Bây giờ, để cấu hình nodemon để khởi động lại máy chủ sau mỗi lần lưu tệp, hãy mở tệp package.json và thêm đoạn mã sau:

"scripts": {
  "dev": "nodemon ."
},

Điều này cho phép chúng ta chạy máy chủ phát triển bằng cách sử dụng lệnh “npm run dev”.

Tệp package.json của bạn nên trông giống như sau:

{
  "dependencies": {
    "express": "^4.18.1",
    "googleapis": "^101.0.0"
  },
  "scripts": {
    "dev": "nodemon ."
  },
  "name": "quickstart",
  "version": "1.0.0",
  "main": "index.js",
  "keywords": [],
  "author": "",
  "license": "ISC",
  "description": "",
  "devDependencies": {
    "nodemon": "^2.0.19"
  }
}

Vui lòng lưu ý rằng các phiên bản phụ thuộc có thể khác nhau.

Tích hợp Google Sheets API

Tiếp theo, hãy tạo một tệp có tên là index.js trong thư mục dự án. Mở tệp index.js và nhập các phụ thuộc mà chúng tôi đã cài đặt.

const express = require("express");
const { google } = require("googleapis");

Khởi tạo Express và lắng nghe máy chủ. Tôi sử dụng cổng 8080, nhưng bạn có thể chọn bất kỳ cổng nào bạn muốn.

const app = express();
const port = 8080;
app.use(express.json());
app.listen(port, () => console.log(`Listening on port ${port}`));

Tiếp theo, thêm mã sau:

async function authSheets() {
  const auth = new google.auth.GoogleAuth({
    keyFile: "keys.json",
    scopes: ["https://www.googleapis.com/auth/spreadsheets"],
  });

  const authClient = await auth.getClient();

  const sheets = google.sheets({ version: "v4", auth: authClient });

  return { auth, authClient, sheets };
}

Hãy giải thích một chút về mã trên:

Đầu tiên, chúng ta đã tạo một đối tượng xác thực Google mới để có thể xác thực yêu cầu API. Điều này hoạt động bằng cách truyền khóa tệp (keys.json) và thuộc tính phạm vi, chỉ định API Google chúng tôi đang sử dụng.

Tiếp theo, biến authClient lưu trữ chi tiết về tài khoản dịch vụ (đối tượng khách hàng) từ phương thức getClient sau khi chi tiết đã được xác minh trong đối tượng xác thực.

Sau đó, chúng ta tạo một phiên bản của Google Sheets API. Nó nhận một đối tượng với hai thuộc tính: phiên bản (phiên bản hiện tại, trong trường hợp của chúng tôi là v4) và auth, authClient chúng tôi đã tạo.

Cuối cùng, chúng ta trả về các biến để có thể truy cập vào giá trị trong bảng trong tất cả các tuyến đường của ứng dụng.

Đọc dữ liệu từ một bảng

Bây giờ, để lấy dữ liệu từ bảng, chúng ta sẽ sử dụng phương thức “sheets.spreadsheets.values.get”, nhận hai tham số bắt buộc (spreadsheetId và range) và lưu chúng vào một biến phản hồi.

app.get("/", async (req, res) => {
  const { sheets } = await authSheets();

  const getRows = await sheets.spreadsheets.values.get({
    spreadsheetId: id,
    range: "Sheet1",
  });

  res.send(getRows.data);
});

Chúng tôi trích xuất spreadsheetId từ URL của bảng và lưu vào một biến toàn cục, “id”:

Theo dõi màu đỏ là ID của bảng.

Sau đó, dải xác định dải ô để đọc, chúng tôi ở đây sử dụng tên bảng. Mỗi tệp bảng có ít nhất một sheet, được xác định bởi tên sheet. Trong ví dụ của chúng tôi, chúng tôi sử dụng tên sheet “Sheet1”, bạn có thể tìm thấy nó ở dưới cùng bên trái của bảng.

Bạn cũng có thể giới hạn dải của sheet bằng cách thêm tên sheet, dấu chấm than, sau đó là phạm vi cột (ví dụ: “Sheet1!A1:C5”).

Phương thức “sheets.spreadsheets.values.get” có ba tham số truy vấn tùy chọn khác:

  • majorDimension xác định chiều chính của các giá trị, có thể là hàng hoặc cột. Giá trị mặc định là “ROWS”.
  • valueRenderOption xác định cách các giá trị được hiển thị trong kết quả. Giá trị mặc định là “FORMATTED_VALUE”.
  • dateTimeRenderOption xác định cách các ngày, giờ và khoảng thời gian được hiển thị trong kết quả. Giá trị mặc định là “SERIAL_NUMBER”.

Bây giờ hãy chạy lệnh sau trong terminal để khởi động máy chủ:

npm run dev

Sau đó, hãy truy cập vào trình duyệt của bạn và nhập địa chỉ http://localhost:8080. Kết quả sẽ trông giống như thế này:

{
  ...
}

Nếu nó không giống như thế này, hãy cài đặt JSONVue để định dạng tệp JSON trên trình duyệt. Với điều đó, chúng ta đã thành công trong việc đọc dữ liệu từ bảng của chúng ta.

Viết và cập nhật dữ liệu trong bảng

Để thêm dữ liệu sau một bảng dữ liệu trong một sheet, hãy sử dụng phương thức “sheets.spreadsheets.values.append”, nhận id của bảng, dải ô để viết, dữ liệu người dùng nhập và đối tượng “resource” chứa thông tin để chèn vào hàng.

await sheets.spreadsheets.values.append({
  spreadsheetId: id,
  range: "Sheet1",
  valueInputOption: "USER_ENTERED",
  resource: {
    values: [["Gabriella", "Female", "4. Senior"]],
  },
});

Thuộc tính “valueInputOption” xác định cách dữ liệu đầu vào được hiểu. Giá trị sẽ được phân tích dựa trên cách người dùng nhập chúng trong giao diện người dùng.

Đối tượng “resource” có một phần con, “values”, là một mảng chứa dữ liệu để thêm vào sheet. Ở đây, chúng tôi thêm một hàng mới với các giá trị cho tên sinh viên, giới tính và cấp độ lớp.

Lưu mã lại và truy cập vào Google Sheets, nơi bạn sẽ thấy mục mới đã được thêm. Nếu không có, làm mới máy chủ cục bộ và quay lại Google Sheets.

Cũng có thể sử dụng yêu cầu “spreadsheets.values.update”. Điều này cho phép chúng ta viết dữ liệu vào một phạm vi cụ thể. Ví dụ, mã sau sẽ cập nhật cấp độ lớp của Alexandra thành “2. Sophomore”:

await sheets.spreadsheets.values.update({
  spreadsheetId: id,
  range: "Sheet1!C2",
  valueInputOption: "USER_ENTERED",
  resource: {
    values: [["2. Sophomore"]],
  },
});

Xóa dữ liệu từ Google Sheets

Bằng cách sử dụng phương thức “spreadsheets.values.clear”, chúng ta có thể xóa các giá trị của một bảng. Để làm điều này, chỉ định id của bảng và phạm vi. Mã dưới đây sẽ xóa tất cả các giá trị từ dòng A6 đến C6:

await sheets.spreadsheets.values.clear({
  spreadsheetId: id,
  range: "Sheet1!A6:C6",
});

Cập nhật định dạng bảng

Với Google Sheets API, chúng ta có thể cập nhật định dạng của các ô và dải trong bảng.

Mã sau đây đặt kiểu cho từng ô trong phạm vi xác định. Ở đây, chúng tôi thêm đường viền đứt chấm màu đỏ:

await sheets.spreadsheets.batchUpdate({
  spreadsheetId: id,
  resource: {
    requests: [
      {
        updateBorders: {
          range: {
            sheetId: 0,
            startRowIndex: 0,
            endRowIndex: 6,
            startColumnIndex: 0,
            endColumnIndex: 3,
          },
          top: {
            style: "DASHED",
            width: 1,
            color: {
              red: 1.0,
            },
          },
          bottom: {
            style: "DASHED",
            width: 1,
            color: {
              red: 1.0,
            },
          },
          innerHorizontal: {
            style: "DASHED",
            width: 1,
            color: {
              red: 1.0,
            },
          },
        },
      },
    ],
  },
});

Dưới đây là cấu trúc kết quả:

Đã gặp vấn đề khi chạy các ví dụ? Hãy xem ví dụ đầy đủ cục bộ qua Runme.

Câu hỏi thường gặp về Google Sheets API

Dưới đây là một số câu hỏi thường gặp về Google Sheets API.

Tôi có thể sử dụng Google Sheets API miễn phí không?

Việc sử dụng Google Sheets API là miễn phí, nhưng mỗi người dùng có giới hạn sử dụng. Giới hạn sử dụng của Google Sheets API là các hạn ngạch và giới hạn được đặt bởi Google để đảm bảo rằng API của họ được sử dụng công bằng và bảo vệ hệ thống của họ.

Tuy nhiên, bạn không nên đạt đến giới hạn này trừ khi ứng dụng của bạn có nhiều người dùng. Nếu bạn vượt quá giới hạn, bạn sẽ nhận được lỗi “429: Too many requests”. Trong trường hợp này, hãy thử sử dụng thuật toán tạm ngưng mũi tên.

Làm thế nào để sử dụng các API trong Google Sheets?

Giống như bạn có thể sử dụng Google Sheets API để đọc và viết vào Google Sheets, bạn cũng có thể tận dụng tính kết nối của nó để sử dụng các API khác.

Kết luận

Trong hướng dẫn này, chúng tôi đã khám phá một số chức năng cơ bản của Google Sheets API và bạn có thể thấy rằng nó rất dễ cấu hình. Nhưng đó không phải tất cả. Từ đó, bạn có thể đơn giản tạo một bản sao của Google Forms, một ứng dụng yêu cầu video hoặc sử dụng nó một cách phức tạp hơn như cơ sở dữ liệu mà ứng dụng lấy dữ liệu từ đó và hiển thị nó trên giao diện người dùng.

Hy vọng rằng bạn đã tìm thấy bài viết này hữu ích và thú vị. Nếu bạn muốn khám phá các chức năng khác, hãy xem tài liệu.

Để cập nhật nội dung mới nhất của chúng tôi, đăng ký nhận cập nhật qua email hoặc theo dõi chúng tôi trên Twitter tại @runmedev! Hãy kiểm tra Runme (sách hướng dẫn tương tác cho VS Code) và Runme Cloud.

Hãy cho chúng tôi biết ý kiến của bạn. Tạm biệt cho đến lúc này! 👋

Chúc bạn mãi mãi vui vẻ!

Related posts