Dịch vụ thuộc tính

Dịch vụ thuộc tính cho phép bạn lưu trữ dữ liệu đơn giản trong các cặp khoá-giá trị thuộc phạm vi một tập lệnh, một người dùng của tập lệnh hoặc một tài liệu sử dụng tiện ích bổ sung. Thuộc tính này thường được dùng để lưu trữ cấu hình của nhà phát triển hoặc lựa chọn ưu tiên của người dùng. Các thuộc tính không bao giờ được chia sẻ giữa các tập lệnh.

Để xem hạn mức hằng ngày và giới hạn bộ nhớ cho dịch vụ Tài sản, hãy xem phần Hạn mức cho các dịch vụ của Google.

So sánh kho lưu trữ tài sản

Đối tượng toàn cục PropertiesService cung cấp 3 phương thức, mỗi phương thức trả về một đối tượng Properties tương tự nhưng có các quyền truy cập khác nhau, như trong bảng sau:

Thuộc tính của tập lệnh Thuộc tính người dùng Thuộc tính tài liệu
Phương thức truy cập getScriptProperties() getUserProperties() getDocumentProperties()
Dữ liệu được chia sẻ giữa Tất cả người dùng tập lệnh, tiện ích bổ sung hoặc ứng dụng web Người dùng hiện tại của một tập lệnh, tiện ích bổ sung hoặc ứng dụng web Tất cả người dùng tiện ích bổ sung trong tài liệu đang mở
Thường dùng cho Dữ liệu cấu hình trên toàn ứng dụng, chẳng hạn như tên người dùng và mật khẩu cho cơ sở dữ liệu bên ngoài của nhà phát triển Chế độ cài đặt dành riêng cho người dùng, chẳng hạn như đơn vị đo lường theo hệ mét hoặc hệ đo lường Anh Dữ liệu dành riêng cho tài liệu, chẳng hạn như URL nguồn của biểu đồ được nhúng

Định dạng dữ liệu

Dịch vụ Thuộc tính lưu trữ tất cả dữ liệu dưới dạng chuỗi trong các cặp khoá-giá trị. Các loại dữ liệu không phải là chuỗi sẽ tự động được chuyển đổi thành chuỗi, bao gồm cả các phương thức có trong đối tượng đã lưu.

Lưu dữ liệu

Để lưu một giá trị, hãy gọi phương thức Properties.setProperty(key, value) của kho lưu trữ thích hợp, như trong ví dụ sau:

service/propertyService.gs
try {
  // Set a property in each of the three property stores.
  const scriptProperties = PropertiesService.getScriptProperties();
  const userProperties = PropertiesService.getUserProperties();
  const documentProperties = PropertiesService.getDocumentProperties();

  scriptProperties.setProperty('SERVER_URL', 'http://www.example.com/');
  userProperties.setProperty('DISPLAY_UNITS', 'metric');
  documentProperties.setProperty('SOURCE_DATA_ID',
      '1j3GgabZvXUF177W0Zs_2v--H6SPCQb4pmZ6HsTZYT5k');
} catch (err) {
  // TODO (developer) - Handle exception
  console.log('Failed with error %s', err.message);
}

Để lưu dữ liệu hàng loạt, hãy truyền một bản đồ gồm các cặp khoá-giá trị đến Properties.setProperties(properties). Mỗi cặp khoá-giá trị của đối tượng trong tham số được lưu trữ dưới dạng một thuộc tính riêng:

service/propertyService.gs
try {
  // Set multiple script properties in one call.
  const scriptProperties = PropertiesService.getScriptProperties();
  scriptProperties.setProperties({
    'cow': 'moo',
    'sheep': 'baa',
    'chicken': 'cluck'
  });
} catch (err) {
  // TODO (developer) - Handle exception
  console.log('Failed with error %s', err.message);
}

Đọc dữ liệu

Để truy xuất một giá trị duy nhất mà bạn đã lưu trước đó, hãy gọi Properties.getProperty(key):

service/propertyService.gs
try {
  // Get the value for the user property 'DISPLAY_UNITS'.
  const userProperties = PropertiesService.getUserProperties();
  const units = userProperties.getProperty('DISPLAY_UNITS');
  console.log('values of units %s', units);
} catch (err) {
  // TODO (developer) - Handle exception
  console.log('Failed with error %s', err.message);
}

Để truy xuất tất cả giá trị trong kho thuộc tính hiện tại, hãy gọi Properties.getProperties():

service/propertyService.gs
try {
  // Get multiple script properties in one call, then log them all.
  const scriptProperties = PropertiesService.getScriptProperties();
  const data = scriptProperties.getProperties();
  for (const key in data) {
    console.log('Key: %s, Value: %s', key, data[key]);
  }
} catch (err) {
  // TODO (developer) - Handle exception
  console.log('Failed with error %s', err.message);
}

Sửa đổi dữ liệu

Các phương thức getProperty()getProperties() trả về một bản sao của dữ liệu được lưu trữ, chứ không phải một chế độ xem trực tiếp, vì vậy, việc thay đổi đối tượng được trả về sẽ không cập nhật giá trị trong kho thuộc tính. Để cập nhật dữ liệu trong kho lưu trữ, bạn chỉ cần lưu lại dữ liệu đó:

service/propertyService.gs
try {
  // Change the unit type in the user property 'DISPLAY_UNITS'.
  const userProperties = PropertiesService.getUserProperties();
  let units = userProperties.getProperty('DISPLAY_UNITS');
  units = 'imperial'; // Only changes local value, not stored value.
  userProperties.setProperty('DISPLAY_UNITS', units); // Updates stored value.
} catch (err) {
  // TODO (developer) - Handle exception
  console.log('Failed with error %s', err.message);
}

Xóa dữ liệu

Để xoá một giá trị, hãy gọi Properties.deleteProperty(key):

service/propertyService.gs
try {
  // Delete the user property 'DISPLAY_UNITS'.
  const userProperties = PropertiesService.getUserProperties();
  userProperties.deleteProperty('DISPLAY_UNITS');
} catch (err) {
  // TODO (developer) - Handle exception
  console.log('Failed with error %s', err.message);
}

Để xoá tất cả thuộc tính trong kho hiện tại, hãy gọi Properties.deleteAllProperties():

service/propertyService.gs
try {
  // Get user properties in the current script.
  const userProperties = PropertiesService.getUserProperties();
  // Delete all user properties in the current script.
  userProperties.deleteAllProperties();
} catch (err) {
  // TODO (developer) - Handle exception
  console.log('Failed with error %s', err.message);
}

Quản lý thuộc tính tập lệnh theo cách thủ công

Bạn có thể tự thêm tối đa 50 thuộc tính tuỳ chỉnh dưới dạng chuỗi trong cặp khoá-giá trị trên trang cài đặt dự án. Để thêm nhiều hơn 50 thuộc tính, bạn cần thêm các thuộc tính đó theo phương thức có lập trình bằng cách sử dụng các phương thức được mô tả ở trên trong phần Lưu dữ liệu. Khi đặt thuộc tính tập lệnh trên trang cài đặt dự án, bạn không thể tham chiếu biến tập lệnh.

Thêm thuộc tính của tập lệnh

  1. Mở dự án Apps Script.
  2. Ở bên trái, hãy nhấp vào biểu tượng Cài đặt dự án Biểu tượng cài đặt dự án.
  3. Để thêm tài sản đầu tiên, trong phần Thuộc tính tập lệnh, hãy nhấp vào Thêm thuộc tính tập lệnh.
  4. Để thêm thuộc tính thứ hai và các thuộc tính tiếp theo, trong phần Thuộc tính tập lệnh, hãy nhấp vào Chỉnh sửa thuộc tính tập lệnh > Thêm thuộc tính tập lệnh.
  5. Đối với Tài sản, hãy nhập tên khoá.
  6. Đối với Giá trị, hãy nhập giá trị cho khoá.
  7. (Không bắt buộc) Để thêm thuộc tính khác, hãy nhấp vào Thêm thuộc tính tập lệnh.
  8. Nhấp vào Lưu thuộc tính tập lệnh.

Chỉnh sửa thuộc tính của tập lệnh

  1. Mở dự án Apps Script.
  2. Ở bên trái, hãy nhấp vào biểu tượng Cài đặt dự án Biểu tượng cài đặt dự án.
  3. Trong phần Thuộc tính tập lệnh, hãy nhấp vào Chỉnh sửa thuộc tính tập lệnh.
  4. Thay đổi tên khoá và giá trị khoá cho từng thuộc tính mà bạn muốn thay đổi.
  5. Nhấp vào Lưu thuộc tính của tập lệnh.

Xoá thuộc tính của tập lệnh

  1. Mở dự án Apps Script.
  2. Ở bên trái, hãy nhấp vào biểu tượng Cài đặt dự án Biểu tượng cài đặt dự án.
  3. Trong phần Thuộc tính tập lệnh, hãy nhấp vào Chỉnh sửa thuộc tính tập lệnh.
  4. Bên cạnh tài sản mà bạn muốn xoá, hãy nhấp vào biểu tượng Xoá .
  5. Nhấp vào Lưu thuộc tính tập lệnh.