Serviço avançado do Apresentações

O serviço avançado do Apresentações permite acessar a API Slides usando o Apps Script. Esse serviço permite que scripts leiam e editem conteúdo nas Apresentações Google.

Referência

Para informações detalhadas sobre esse serviço, consulte a documentação de referência da API Slides. Assim como todos os serviços avançados no Apps Script, o serviço avançado do Apresentações usa os mesmos objetos, métodos e parâmetros que a API pública. Para mais informações, consulte Como as assinaturas de método são determinadas.

Para denunciar problemas e encontrar outras opções de suporte, consulte o guia de suporte do Apresentações.

Código de amostra

O exemplo de código abaixo usa a versão 1 da API.

Criar uma nova apresentação

O exemplo a seguir demonstra como criar uma apresentação usando o serviço avançado do Apresentações. É equivalente ao exemplo de receita Criar uma apresentação.

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

Criar um novo slide

O exemplo a seguir demonstra como criar um novo slide em uma apresentação, em um índice específico e com um layout predefinido. É equivalente ao exemplo de receita Criar um slide.

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

Ler os códigos de objeto do elemento de página

O exemplo a seguir demonstra como recuperar os IDs de objeto de cada elemento de página em um slide específico usando uma máscara de campo. É equivalente ao exemplo de receita Ler IDs de objetos de elementos de uma página.

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

Adicionar uma nova caixa de texto

O exemplo a seguir demonstra como adicionar uma nova caixa de texto a um slide e incluir texto nela. É equivalente ao exemplo de receita Adicionar uma caixa de texto a um slide.

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

Formatar texto de formato

O exemplo a seguir demonstra como formatar o texto de uma forma, atualizando a cor, a fonte e sublinhando o texto. É equivalente ao exemplo de receita Formatar texto em uma forma ou caixa de texto.

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

Práticas recomendadas

Atualizações em lote

Ao usar o serviço avançado do Apresentações, combine várias solicitações em uma matriz em vez de chamar batchUpdate em um loop.

Não: chame batchUpdate em um loop.

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

Fazer: chame batchUpdate com uma matriz de atualizações.

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