Gelişmiş Slaytlar Hizmeti

Gelişmiş Slaytlar hizmeti, Slaytlar API'sine Apps Komut Dosyası. Bu hizmet, komut dosyalarının Google Slaytlar'da içeriği okumasına ve düzenlemesine olanak tanır.

Referans

Bu hizmetle ilgili ayrıntılı bilgi için bkz. Slaytlar API'sinin referans belgeleri Apps Komut Dosyası'ndaki tüm gelişmiş hizmetler gibi gelişmiş Slaytlar hizmeti de herkese açık API ile aynı nesneler, yöntemler ve parametreler olmalıdır. Daha fazla bilgi için Yöntem imzaları nasıl belirlenir? bölümüne bakın.

Sorun bildirmek ve daha fazla destek almak için şuraya bakın: Slaytlar destek rehberi.

Örnek kod

Aşağıdaki örnek kod, API'nin 1. sürümünü kullanmaktadır.

Yeni bir sunu oluştur

Aşağıdaki örnekte, Slaytlar'ın gelişmiş hizmeti. Bu, Yeni sunu oluşturma yemek tarifi örneği.

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

Yeni slayt oluştur

Aşağıdaki örnekte bir sunuda yeni bir slaytın nasıl oluşturulacağı gösterilmektedir: dizine ekleyebilir ve önceden tanımlanmış düzenle kontrol edebilirsiniz. Bu, Yeni slayt oluştur yemek tarifi örneği.

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

Sayfa öğesi nesne kimliklerini oku

Aşağıdaki örnekte, her sayfa için nesne kimliklerinin nasıl alınacağı gösterilmektedir öğesi oluşturabilirsiniz. Bu, Bir sayfadan öğe nesne kimliklerini okuma yemek tarifi örneği.

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

Yeni metin kutusu ekle

Aşağıdaki örnekte, bir slayta yeni bir metin kutusunun nasıl ekleneceği ve bir metin görürsünüz. Bu, Slayta metin kutusu ekleme yemek tarifi örneği.

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

Şekil metnini biçimlendir

Aşağıdaki örnekte, bir şeklin metninin nasıl biçimlendirileceği gösterilmektedir. yazı tipini ve metnin altını çiziyor. Bu, Şekil veya metin kutusundaki metni biçimlendirme yemek tarifi örneği.

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

En İyi Uygulamalar

Toplu Güncellemeler

Slaytlar Gelişmiş Hizmeti'ni kullanırken birden fazla isteği bir dizide birleştirin batchUpdate yöntemini çağırın.

Yapmayın: Döngüde batchUpdate adlı kişiyi arayın.

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

YapınbatchUpdate öğesini bir dizi güncellemelerine göz atın.

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