Gelişmiş Slaytlar Hizmeti

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

Referans

Bu hizmetle ilgili ayrıntılı bilgi için Slides API'nin referans belgelerini inceleyin. Apps Komut Dosyası'ndaki tüm gelişmiş hizmetler gibi gelişmiş Slaytlar hizmeti de genel API ile aynı nesneleri, yöntemleri ve parametreleri kullanır. Daha fazla bilgi için Yöntem imzaları nasıl belirlenir? bölümüne bakın.

Sorunları bildirmek ve başka desteğe ulaşmak 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ş hizmeti kullanılarak yeni bir sununun nasıl oluşturulacağı gösterilmektedir. Yeni bir sunu oluştur yemek tarifi örneğiyle 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 örnek, bir sunuda, belirli bir dizinde ve önceden tanımlanmış düzene sahip yeni bir slaytın nasıl oluşturulacağını gösterir. Yeni slayt oluştur yemek tarifi örneğiyle 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 bir metin kutusunun nasıl ekleneceği ve metin kutusuna nasıl metin ekleneceği gösterilmektedir. Slayta metin kutusu ekleme tarif ö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 güncellenmesi ve metninin altının nasıl çizileceği gösterilmektedir. Şekil veya metin kutusundaki 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 hizmetini döngü içinde çağırmak yerine birden fazla isteği bir dizide birleştirin.

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ın — Bir dizi güncellemeyle batchUpdate adlı kullanıcıyı ç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
});