שירות מתקדם של Slides

השירות 'מצגות מתקדמות' מאפשר לגשת ל-Slides API באמצעות Apps Script. השירות הזה מאפשר לסקריפטים לקרוא ולערוך תוכן ב-Google Slides.

חומר עזר

למידע מפורט על השירות הזה, קראו את מסמכי התיעוד של Slides API. בדומה לכל השירותים המתקדמים ב-Apps Script, גם השירות המתקדם של Slides משתמש באותם אובייקטים, שיטות ופרמטרים כמו ה-API הציבורי. מידע נוסף זמין במאמר איך נקבעות חתימות של שיטות.

במדריך התמיכה של Slides מוסבר איך לדווח על בעיות ולמצוא אפשרויות תמיכה אחרות.

קוד לדוגמה

הקוד לדוגמה שבהמשך משתמש בגרסה 1 של ה-API.

צור מצגת חדשה

הדוגמה הבאה ממחישה איך יוצרים מצגת חדשה באמצעות השירות המתקדם של Slides. היא מקבילה למתכון לדוגמה ליצירת מצגת חדשה.

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

צור שקופית חדשה

הדוגמה הבאה מדגימה איך יוצרים שקף חדש במצגת, באינדקס ספציפי ובפריסה מוגדרת מראש. היא מקבילה לדוגמת המתכון Create a new Slides.

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

הוסף תיבת טקסט חדשה

בעזרת הדוגמה הבאה מוסבר איך מוסיפים תיבת טקסט חדשה לשקף ואיך מוסיפים לו טקסט. היא מקבילה לדוגמת המתכון Add a text box to a Slides.

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

שיטות מומלצות

עדכונים בכמות גדולה

כשמשתמשים בשירות המתקדם של Slides, צריך לשלב כמה בקשות במערך במקום להפעיל את batchUpdate בלולאה.

מה לא לעשות — מתקשרים אל batchUpdate בלולאה.

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

Do — Call 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
});