บริการอสังหาริมทรัพย์

บริการพร็อพเพอร์ตี้ช่วยให้คุณจัดเก็บ ข้อมูลอย่างง่ายในคู่คีย์-ค่าที่กำหนดขอบเขตไว้สำหรับสคริปต์ 1 รายการ ผู้ใช้สคริปต์ 1 ราย หรือ เอกสาร 1 รายการที่ใช้ส่วนเสริม โดยปกติจะใช้เพื่อจัดเก็บการกำหนดค่าของนักพัฒนาแอปหรือค่ากำหนดของผู้ใช้ ระบบจะไม่แชร์พร็อพเพอร์ตี้ ระหว่างสคริปต์ต่างๆ

หากต้องการดูโควต้าต่อวันและขีดจำกัดพื้นที่เก็บข้อมูลสำหรับบริการพร็อพเพอร์ตี้ โปรดดูโควต้าสำหรับบริการของ Google

การเปรียบเทียบร้านค้าของพร็อพเพอร์ตี้

ออบเจ็กต์ PropertiesService ส่วนกลางมี 3 วิธี ซึ่งแต่ละวิธีจะแสดงออบเจ็กต์ Properties ที่คล้ายกัน แต่มีสิทธิ์เข้าถึงที่แตกต่างกัน ดังที่แสดงในตารางต่อไปนี้

คุณสมบัติของสคริปต์ พร็อพเพอร์ตี้ผู้ใช้ คุณสมบัติของเอกสาร
วิธีการเข้าถึง getScriptProperties() getUserProperties() getDocumentProperties()
ข้อมูลที่แชร์ระหว่าง ผู้ใช้ทั้งหมดของสคริปต์ ส่วนเสริม หรือเว็บแอป ผู้ใช้ปัจจุบันของสคริปต์ ส่วนเสริม หรือเว็บแอป ผู้ใช้ทั้งหมดของส่วนเสริมในเอกสารที่เปิดอยู่
มักใช้สำหรับ ข้อมูลการกำหนดค่าทั้งแอป เช่น ชื่อผู้ใช้และรหัสผ่านสำหรับ ฐานข้อมูลภายนอกของนักพัฒนาแอป การตั้งค่าเฉพาะผู้ใช้ เช่น หน่วยเมตริกหรืออิมพีเรียล ข้อมูลเฉพาะเอกสาร เช่น URL แหล่งที่มาของแผนภูมิที่ฝัง

รูปแบบข้อมูล

บริการ Properties จะจัดเก็บข้อมูลทั้งหมดเป็นสตริงในคู่คีย์-ค่า ระบบจะแปลงประเภทข้อมูล ที่ไม่ได้เป็นสตริงอยู่แล้วให้เป็นสตริงโดยอัตโนมัติ รวมถึง เมธอดที่อยู่ในออบเจ็กต์ที่บันทึกไว้

การบันทึกข้อมูล

หากต้องการบันทึกค่าเดียว ให้เรียกใช้เมธอด Properties.setProperty(key, value) ของที่เก็บข้อมูลที่เหมาะสม ดังที่แสดงในตัวอย่างต่อไปนี้

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);
}

หากต้องการบันทึกข้อมูลแบบเป็นกลุ่ม ให้ส่งแผนที่ของคู่คีย์-ค่าไปยัง Properties.setProperties(properties) ระบบจะจัดเก็บคู่คีย์-ค่าแต่ละคู่ของออบเจ็กต์ในพารามิเตอร์เป็นพร็อพเพอร์ตี้แยกกัน

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);
}

การอ่านข้อมูล

หากต้องการดึงค่าเดียวที่คุณบันทึกไว้ก่อนหน้านี้ ให้เรียกใช้ 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);
}

หากต้องการดึงค่าทั้งหมดในที่เก็บพร็อพเพอร์ตี้ปัจจุบัน ให้เรียกใช้ 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);
}

การแก้ไขข้อมูล

เมธอด getProperty() และ getProperties() จะแสดงผลสำเนาของข้อมูลที่จัดเก็บ ไม่ใช่มุมมองแบบเรียลไทม์ ดังนั้นการเปลี่ยนออบเจ็กต์ที่แสดงผลจะไม่เป็นการอัปเดตค่าในที่เก็บพร็อพเพอร์ตี้ หากต้องการอัปเดตข้อมูลในร้านค้า ให้บันทึกข้อมูลอีกครั้งโดยทำดังนี้

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);
}

การลบข้อมูล

หากต้องการลบค่าเดียว ให้เรียกใช้ 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);
}

หากต้องการลบพร็อพเพอร์ตี้ทั้งหมดในร้านค้าปัจจุบัน ให้เรียกใช้ 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);
}

จัดการพร็อพเพอร์ตี้ของสคริปต์ด้วยตนเอง

คุณเพิ่มพร็อพเพอร์ตี้ที่กำหนดเองได้สูงสุด 50 รายการด้วยตนเองเป็นสตริงในคู่คีย์-ค่าจากหน้าการตั้งค่าโปรเจ็กต์ หากต้องการเพิ่มพร็อพเพอร์ตี้มากกว่า 50 รายการ คุณจะต้องเพิ่มแบบเป็นโปรแกรมโดยใช้วิธีที่อธิบายไว้ข้างต้นในส่วนการบันทึกข้อมูล เมื่อตั้งค่าพร็อพเพอร์ตี้สคริปต์จากหน้าการตั้งค่าโปรเจ็กต์ คุณจะอ้างอิงตัวแปรสคริปต์ไม่ได้

เพิ่มพร็อพเพอร์ตี้ของสคริปต์

  1. เปิดโปรเจ็กต์ Apps Script
  2. คลิกการตั้งค่าโปรเจ็กต์ ไอคอนสำหรับการตั้งค่าโปรเจ็กต์ ทางด้านซ้าย
  3. หากต้องการเพิ่มพร็อพเพอร์ตี้แรก ให้คลิกเพิ่มพร็อพเพอร์ตี้ของสคริปต์ในส่วนพร็อพเพอร์ตี้ของสคริปต์
  4. หากต้องการเพิ่มพร็อพเพอร์ตี้ที่ 2 และพร็อพเพอร์ตี้ต่อๆ ไป ให้คลิกแก้ไขพร็อพเพอร์ตี้ของสคริปต์ > เพิ่มพร็อพเพอร์ตี้ของสคริปต์ในส่วนพร็อพเพอร์ตี้ของสคริปต์
  5. สําหรับพร็อพเพอร์ตี้ ให้ป้อนชื่อคีย์
  6. สําหรับค่า ให้ป้อนค่าสําหรับคีย์
  7. (ไม่บังคับ) หากต้องการเพิ่มพร็อพเพอร์ตี้ ให้คลิกเพิ่มพร็อพเพอร์ตี้ของสคริปต์
  8. คลิกบันทึกพร็อพเพอร์ตี้ของสคริปต์

แก้ไขพร็อพเพอร์ตี้ของสคริปต์

  1. เปิดโปรเจ็กต์ Apps Script
  2. คลิกการตั้งค่าโปรเจ็กต์ ไอคอนสำหรับการตั้งค่าโปรเจ็กต์ ทางด้านซ้าย
  3. ในส่วนพร็อพเพอร์ตี้ของสคริปต์ ให้คลิกแก้ไขพร็อพเพอร์ตี้ของสคริปต์
  4. ทำการเปลี่ยนแปลงชื่อคีย์และค่าคีย์สำหรับแต่ละพร็อพเพอร์ตี้ที่คุณต้องการเปลี่ยนแปลง
  5. คลิกบันทึกพร็อพเพอร์ตี้ของสคริปต์

ลบพร็อพเพอร์ตี้ของสคริปต์

  1. เปิดโปรเจ็กต์ Apps Script
  2. คลิกการตั้งค่าโปรเจ็กต์ ไอคอนสำหรับการตั้งค่าโปรเจ็กต์ ทางด้านซ้าย
  3. ในส่วนพร็อพเพอร์ตี้ของสคริปต์ ให้คลิกแก้ไขพร็อพเพอร์ตี้ของสคริปต์
  4. คลิกนำออก ข้างพร็อพเพอร์ตี้ที่ต้องการลบ
  5. คลิกบันทึกพร็อพเพอร์ตี้ของสคริปต์