Gelişmiş Slaytlar Hizmeti

Gelişmiş Slaytlar hizmeti, Apps Komut Dosyası'nı kullanarak Slides API'ye erişmenizi sağlar. Bu hizmet, komut dosyalarının Google Slaytlar'daki içeriği okumasına ve düzenlemesine olanak tanır.

Referans

Bu hizmet hakkında ayrıntılı bilgi için Slaytlar API referans belgelerini inceleyin. Apps Komut Dosyası'ndaki tüm gelişmiş hizmetler gibi gelişmiş Slaytlar hizmeti de herkese açık API ile aynı nesneleri, yöntemleri ve parametreleri kullanır. Daha fazla bilgi için Yöntem imzaları nasıl belirlenir? başlıklı makaleye bakın.

Sorunları bildirmek ve diğer destek seçeneklerini öğrenmek için Slaytlar destek kılavuzuna göz atın.

Ö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 gelişmiş hizmetini kullanarak nasıl yeni bir sunu oluşturulacağı gösterilmektedir. Yeni sunum oluştur yemek tarifi örneğine eşdeğerdir.

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, belirli bir dizinde ve önceden tanımlanmış düzenle nasıl yeni bir slayt oluşturulacağı gösterilmektedir. Yeni slayt oluştur yemek tarifi örneğine eşdeğerdir.

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, alan maskesi kullanılarak belirli bir slayttaki her sayfa öğesi için nesne kimliklerinin nasıl alınacağı gösterilmektedir. Bir sayfadaki öğe nesne kimliklerini okuma tarif örneğine eşdeğerdir.

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 metin kutusunun nasıl ekleneceği ve bu metin kutusuna nasıl metin ekleneceği gösterilmektedir. Slayta metin kutusu ekleme yemek tarifi örneğine eşdeğerdir.

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, renginin, yazı tipinin nasıl güncelleneceği ve metnin altının nasıl çizileceği gösterilmektedir. Şekil veya metin kutusu içindeki metni biçimlendirme tarif örneğine eşdeğerdir.

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 iyi uygulamalar

Toplu Güncellemeler

Slaytlar Gelişmiş Hizmeti'ni kullanırken batchUpdate işlemini döngüde çağırmak yerine birden fazla isteği bir dizide birleştirin.

YapmayınbatchUpdate adlı kişiyi döngüye alın.

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

Yapılması - Bir dizi güncellemeyle batchUpdate işlevini çağırı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
});