บริการสไลด์ขั้นสูง

บริการสไลด์ขั้นสูงช่วยให้คุณสามารถเข้าถึง Slides API โดยใช้ Apps Script บริการนี้อนุญาตให้สคริปต์อ่านและแก้ไขเนื้อหาใน Google สไลด์ได้

ข้อมูลอ้างอิง

สำหรับข้อมูลโดยละเอียดเกี่ยวกับบริการนี้ โปรดดูที่ เอกสารอ้างอิงสำหรับ Slides API เช่นเดียวกับบริการขั้นสูงทั้งหมดใน Apps Script บริการสไลด์ขั้นสูงจะใช้ ออบเจ็กต์ เมธอด และพารามิเตอร์เดียวกันกับ API สาธารณะ ดูข้อมูลเพิ่มเติมได้ที่วิธีกำหนดลายเซ็นของเมธอด

หากต้องการรายงานปัญหาและค้นหาการสนับสนุนอื่นๆ โปรดดู คู่มือการสนับสนุนสไลด์

โค้ดตัวอย่าง

โค้ดตัวอย่างด้านล่างใช้ API เวอร์ชัน 1

สร้างงานนำเสนอใหม่

ตัวอย่างต่อไปนี้แสดงวิธีการสร้างงานนำเสนอใหม่โดยใช้ บริการขั้นสูงของสไลด์ ซึ่งเทียบเท่ากับ สร้างงานนำเสนอใหม่ ตัวอย่างสูตรอาหาร

advanced/slides.gs
/**
 * Create a new presentation.
 * @return {string} presentation Id.
 * @see https://developers.google.com/slides/api/reference/rest/v1/presentations/create
 */
function createPresentation() {
  try {
    const presentation =
      Slides.Presentations.create({'title': 'MyNewPresentation'});
    console.log('Created presentation with ID: ' + presentation.presentationId);
    return presentation.presentationId;
  } catch (e) {
    // TODO (developer) - Handle exception
    console.log('Failed with error %s', e.message);
  }
}

สร้างสไลด์ใหม่

ตัวอย่างต่อไปนี้แสดงวิธีการสร้างสไลด์ใหม่ในงานนำเสนอ ที่ดัชนีที่เฉพาะเจาะจงและด้วยรูปแบบที่กำหนดไว้ล่วงหน้า ซึ่งเทียบเท่ากับ สร้างสไลด์ใหม่ ตัวอย่างสูตรอาหาร

advanced/slides.gs
/**
 * Create a new slide.
 * @param {string} presentationId The presentation to add the slide to.
 * @return {Object} slide
 * @see https://developers.google.com/slides/api/reference/rest/v1/presentations/batchUpdate
 */
function createSlide(presentationId) {
  // You can specify the ID to use for the slide, as long as it's unique.
  const pageId = Utilities.getUuid();

  const requests = [{
    'createSlide': {
      'objectId': pageId,
      'insertionIndex': 1,
      'slideLayoutReference': {
        'predefinedLayout': 'TITLE_AND_TWO_COLUMNS'
      }
    }
  }];
  try {
    const slide =
      Slides.Presentations.batchUpdate({'requests': requests}, presentationId);
    console.log('Created Slide with ID: ' + slide.replies[0].createSlide.objectId);
    return slide;
  } catch (e) {
    // TODO (developer) - Handle Exception
    console.log('Failed with error %s', e.message);
  }
}

อ่านรหัสออบเจ็กต์องค์ประกอบของหน้า

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

advanced/slides.gs
/**
 * Read page element IDs.
 * @param {string} presentationId The presentation to read from.
 * @param {string} pageId The page to read from.
 * @return {Object} response
 * @see https://developers.google.com/slides/api/reference/rest/v1/presentations.pages/get
 */
function readPageElementIds(presentationId, pageId) {
  // You can use a field mask to limit the data the API retrieves
  // in a get request, or what fields are updated in an batchUpdate.
  try {
    const response = Slides.Presentations.Pages.get(
        presentationId, pageId, {'fields': 'pageElements.objectId'});
    console.log(response);
    return response;
  } catch (e) {
    // TODO (developer) - Handle Exception
    console.log('Failed with error %s', e.message);
  }
}

เพิ่มช่องข้อความใหม่

ตัวอย่างต่อไปนี้แสดงวิธีการเพิ่มกล่องข้อความใหม่ในสไลด์และเพิ่ม เพิ่มข้อความลงไป ซึ่งเทียบเท่ากับ เพิ่มกล่องข้อความลงในสไลด์ ตัวอย่างสูตรอาหาร

advanced/slides.gs
/**
 * Add a new text box with text to a page.
 * @param {string} presentationId The presentation ID.
 * @param {string} pageId The page ID.
 * @return {Object} response
 * @see https://developers.google.com/slides/api/reference/rest/v1/presentations/batchUpdate
 */
function addTextBox(presentationId, pageId) {
  // You can specify the ID to use for elements you create,
  // as long as the ID is unique.
  const pageElementId = Utilities.getUuid();

  const requests = [{
    'createShape': {
      'objectId': pageElementId,
      'shapeType': 'TEXT_BOX',
      'elementProperties': {
        'pageObjectId': pageId,
        'size': {
          'width': {
            'magnitude': 150,
            'unit': 'PT'
          },
          'height': {
            'magnitude': 50,
            'unit': 'PT'
          }
        },
        'transform': {
          'scaleX': 1,
          'scaleY': 1,
          'translateX': 200,
          'translateY': 100,
          'unit': 'PT'
        }
      }
    }
  }, {
    'insertText': {
      'objectId': pageElementId,
      'text': 'My Added Text Box',
      'insertionIndex': 0
    }
  }];
  try {
    const response =
      Slides.Presentations.batchUpdate({'requests': requests}, presentationId);
    console.log('Created Textbox with ID: ' +
      response.replies[0].createShape.objectId);
    return response;
  } catch (e) {
    // TODO (developer) - Handle Exception
    console.log('Failed with error %s', e.message);
  }
}

จัดรูปแบบข้อความรูปร่าง

ตัวอย่างต่อไปนี้แสดงวิธีจัดรูปแบบข้อความของรูปร่าง การอัปเดต สี แบบอักษร และขีดเส้นใต้ข้อความ ซึ่งเทียบเท่ากับ จัดรูปแบบข้อความในรูปร่างหรือกล่องข้อความ ตัวอย่างสูตรอาหาร

advanced/slides.gs
/**
 * Format the text in a shape.
 * @param {string} presentationId The presentation ID.
 * @param {string} shapeId The shape ID.
 * @return {Object} replies
 * @see https://developers.google.com/slides/api/reference/rest/v1/presentations/batchUpdate
 */
function formatShapeText(presentationId, shapeId) {
  const requests = [{
    'updateTextStyle': {
      'objectId': shapeId,
      'fields': 'foregroundColor,bold,italic,fontFamily,fontSize,underline',
      'style': {
        'foregroundColor': {
          'opaqueColor': {
            'themeColor': 'ACCENT5'
          }
        },
        'bold': true,
        'italic': true,
        'underline': true,
        'fontFamily': 'Corsiva',
        'fontSize': {
          'magnitude': 18,
          'unit': 'PT'
        }
      },
      'textRange': {
        'type': 'ALL'
      }
    }
  }];
  try {
    const response =
      Slides.Presentations.batchUpdate({'requests': requests}, presentationId);
    return response.replies;
  } catch (e) {
    // TODO (developer) - Handle Exception
    console.log('Failed with error %s', e.message);
  }
}

แนวทางปฏิบัติแนะนำ

การอัปเดตเป็นกลุ่ม

เมื่อใช้บริการขั้นสูงของสไลด์ ให้รวมคำขอหลายรายการในอาร์เรย์ แทนการเรียกใช้ batchUpdate แบบวนซ้ำ

ไม่ต้อง — โทรหา batchUpdate วนซ้ำ

var titles = ["slide 1", "slide 2"];
for (var i = 0; i < titles.length; i++) {
  Slides.Presentations.batchUpdate(preso, {
    requests: [{
      createSlide: ...
    }]
  });
}

ควร — เรียก batchUpdate ด้วยอาร์เรย์ อัปเดต

var requests = [];
var titles = ["slide 1", "slide 2"];
for (var i = 0; i < titles.length; i++) {
  requests.push({ createSlide: ... });
}

Slides.Presentations.batchUpdate(preso, {
  requests: requests
});