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 có sử dụng tiện ích bổ sung. Tệp 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. 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à hạn mức bộ nhớ của dịch vụ Tài sản, hãy xem bài viết Hạn mức cho các dịch vụ của Google.

So sánh các cửa hàng bất động sản

Đối tượng chung 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ự nhau nhưng có các quyền truy cập khác nhau, như minh hoạ 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 một 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 của một tiện ích bổ sung trong tài liệu đang mở
Thường dùng cho Dữ liệu cấu hình trong 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 Cài đặt dành riêng cho người dùng, như đơn vị hệ mét hoặc hệ đo lường Anh Dữ liệu cụ thể của tài liệu, chẳng hạn như URL nguồn cho một 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ị. Những 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.

Đang lưu dữ liệu

Để lưu một giá trị duy nhất, hãy gọi phương thức Properties.setProperty(key, value) của cửa hàng 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 bản đồ các cặp khoá-giá trị đến Properties.setProperties(properties). Mỗi cặp khoá-giá trị của đối tượng trong thông số được lưu trữ dưới dạng một thuộc tính riêng biệt:

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ề bản sao của dữ liệu được lưu trữ chứ không phải 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 cửa hàng, 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ị duy nhất, 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 cửa hàng 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 của tập lệnh theo cách thủ công

Bạn có thể thêm tối đa 50 thuộc tính tuỳ chỉnh theo cách thủ công, dưới dạng chuỗi trong các cặp khoá-giá trị, trên trang cài đặt dự án. Để thêm hơn 50 thuộc tính, bạn cần thêm các thuộc tính đó theo phương thức lập trình bằng các phương thức nêu trên trong phần Lưu dữ liệu. Khi đặt thuộc tính tập lệnh từ trang cài đặt dự án, bạn không thể tham chiếu các 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 cho phần cài đặt dự án.
  3. Để thêm thuộc tính đầu tiên, trong phần Thuộc tính tập lệnh (Script Properties), hãy nhấp vào Thêm thuộc tính của tập lệnh.
  4. Để thêm các thuộc tính thứ hai và tiếp theo, trong mục Thuộc tính của tập lệnh, hãy nhấp vào Chỉnh sửa thuộc tính của tập lệnh > Thêm thuộc tính của tập lệnh.
  5. Đối với Thuộc tính, 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 của 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 cho phần cài đặt dự án.
  3. Trong Thuộc tính tập lệnh, hãy nhấp vào Chỉnh sửa thuộc tính của tập lệnh.
  4. Thực hiện các thay đổi đối vớ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 cho phần cài đặt dự án.
  3. Trong Thuộc tính tập lệnh, hãy nhấp vào Chỉnh sửa thuộc tính của 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 của tập lệnh.