API Google Slides позволяет создавать и редактировать ресурсы PageElement , включая текстовые поля, изображения, таблицы, простые фигуры, линии и встроенные видео. Примеры на этой странице демонстрируют некоторые распространенные операции с элементами страницы с использованием метода presentations.batchUpdate .
В этих примерах используются следующие переменные:
- PRESENTATION_ID — указывает, где вы указываете идентификатор презентации . Значение этого идентификатора можно получить из URL-адреса презентации.
- PAGE_ID — указывает, где вы указываете идентификатор объекта страницы . Вы можете получить его значение из URL-адреса или с помощью запроса на чтение через API.
- PAGE_ELEMENT_ID — указывает, где вы указываете идентификатор объекта элемента страницы . Вы можете указать этот идентификатор для создаваемых вами элементов (с некоторыми ограничениями ) или разрешить API Slides автоматически создавать его. Идентификаторы элементов можно получить с помощью запроса на чтение API.
Эти примеры представлены в виде HTTP-запросов, чтобы обеспечить языковую нейтральность. Чтобы узнать, как реализовать пакетное обновление на разных языках с использованием клиентских библиотек Google API, см. следующие руководства:
Добавить маркированный список в текстовое поле
Приведенный ниже пример кода presentations.batchUpdate демонстрирует, как использовать метод InsertTextRequest для вставки текста в пустое текстовое поле, заданное значением PAGE_ELEMENT_ID . Затем в примере используется метод CreateParagraphBulletsRequest для преобразования всего текста из текстового поля в маркированный список. Элементы списка разделяются символами \n , а отступы регулируются символами \t .
Ниже представлен протокол запроса для создания презентации:
POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{ "requests": [ { "insertText": { "objectId": PAGE_ELEMENT_ID, "text": "My List\n\tItem 1\n\t\tItem 2\n\t\t\tItem 3", "insertionIndex": 0 }, "createParagraphBullets": { "objectId": PAGE_ELEMENT_ID, "bulletPreset": "BULLET_ARROW_DIAMOND_DISC", "textRange": { "type": "ALL" } } } ] }
Этот запрос может создать маркированный список, который будет выглядеть следующим образом:

Добавить фигуру на слайд
Следующий пример кода presentations.batchUpdate демонстрирует, как использовать метод CreateShapeRequest для добавления волнообразной фигуры на слайд, заданный параметром PAGE_ID . Этот запрос задает тип фигуры, затем масштабирует и позиционирует фигуру на слайде. После этого он использует метод InsertTextRequest для добавления текста к этой фигуре. Запрос устанавливает идентификатор строки равным PAGE_ELEMENT_ID .
Ниже представлен протокол запроса для добавления фигуры на слайд:
POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
"requests": [
{
"createShape": {
"objectId": PAGE_ELEMENT_ID,
"elementProperties": {
"pageObjectId": PAGE_ID,
"size": {
"width": {
"magnitude": 3000000,
"unit": "EMU"
},
"height": {
"magnitude": 3000000,
"unit": "EMU"
}
},
"transform": {
"scaleX": 0.6807,
"scaleY": 0.4585,
"translateX": 6583050,
"translateY": 1673950,
"unit": "EMU"
}
},
"shapeType": "WAVE"
}
},
{
"insertText": {
"objectId": PAGE_ELEMENT_ID,
"text": "My Wave Shape",
"insertionIndex": 0
}
}
]
}Добавить видео на слайд
Следующий пример кода presentations.batchUpdate демонстрирует, как использовать метод CreateVideoRequest для встраивания видео в слайд, заданный параметром PAGE_ID . Этот запрос масштабирует и позиционирует видео на слайде, а также устанавливает идентификатор видео равным PAGE_ELEMENT_ID . Уникальный идентификатор исходного видео устанавливается равным VIDEO_ID . Например, видео на YouTube по адресу https://www.youtube.com/watch?v=7U3axjORYZ0 имеет идентификатор 7U3axjORYZ0 .
Ниже представлен протокол запроса для добавления видео на слайд:
POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
"requests": [
{
"createVideo": {
"objectId": PAGE_ELEMENT_ID,
"elementProperties": {
"pageObjectId": PAGE_ID,
"size": {
"width": {
"magnitude": 12000,
"unit": "EMU"
},
"height": {
"magnitude": 9000,
"unit": "EMU"
}
},
"transform": {
"scaleX": 381,
"scaleY": 381,
"translateX": 152400,
"translateY": 152400,
"unit": "EMU"
}
},
"source": "YOUTUBE",
"id": VIDEO_ID
}
}
]
}Скопировать и отредактировать элемент
Приведенный ниже пример кода presentations.batchUpdate демонстрирует, как использовать метод DuplicateObjectRequest для создания копии существующей фигуры (указанной параметром PAGE_ELEMENT_ID ) (указанной параметром COPY_ELEMENT_ID ).
Последующие запросы вносят следующие изменения в дублированный объект:
- Устанавливает цвет фона в соответствии с цветом темы
LIGHT2. - Перемещает копию вниз по странице (от исходного положения фигуры).
- Устанавливает шрифт текста на 18 пунктов (Georgia).
- Изменяет текст на "My Shape Copy".
В приведенных здесь запросах используются маски полей для сохранения неизмененных свойств формы (например, стиля контура). Использование масок полей также повышает производительность.
Для получения дополнительной информации о копировании слайда см. пример «Копирование слайда» .
Ниже представлен протокол запроса для копирования и редактирования элемента:
POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{ "requests": [ { "duplicateObject": { "objectId": PAGE_ELEMENT_ID, "objectIds": { PAGE_ELEMENT_ID: COPY_ELEMENT_ID } } }, { "updateShapeProperties": { "objectId": COPY_ELEMENT_ID, "fields": "shapeBackgroundFill.solidFill.color", "shapeProperties": { "shapeBackgroundFill": { "solidFill": { "color": { "themeColor": "LIGHT2" } } } } } }, { "updatePageElementTransform": { "objectId": COPY_ELEMENT_ID, "applyMode": "RELATIVE", "transform": { "scaleX": 1, "scaleY": 1, "translateX": 0, "translateY": 1250000, "unit": "EMU" } } }, { "updateTextStyle": { "objectId": COPY_ELEMENT_ID, "fields": "fontFamily,fontSize", "textRange": { "type": "ALL" }, "style": { "fontFamily": "Georgia", "fontSize": { "magnitude": 18, "unit": "PT" } } } }, { "deleteText": { "objectId": COPY_ELEMENT_ID, "textRange": { "type": "ALL" } } }, { "insertText": { "objectId": COPY_ELEMENT_ID, "text": "My Shape Copy", "insertionIndex": 0 } } ] }
Вот как может выглядеть фигура и её копия после этих обновлений:

Редактирование контура изображения или видео
Приведенный ниже пример кода presentations.batchUpdate демонстрирует, как использовать метод UpdateImagePropertiesRequest для обновления контурного отображения изображения, заданного параметром IMAGE_ELEMENT_ID . Также используется метод UpdateVideoPropertiesRequest для обновления контурного отображения встроенного видео, заданного параметром VIDEO_ELEMENT_ID .
Запросы вносят следующие изменения в объект:
- Устанавливает цвет контура изображения в соответствии с цветом темы
ACCENT5с частичной прозрачностью. - Устанавливает цвет контура видео в соответствии с цветом темы
ACCENT1без прозрачности. - Устанавливает толщину контура на 3 пункта для обоих элементов.
- Устанавливает стиль контура изображения на
SOLID. - Устанавливает стиль контура видео в значение
DASH_DOT.
Методы UpdateImagePropertiesRequest и UpdateVideoPropertiesRequest позволяют изменять только внешний вид контуров изображений и видео. Все остальные свойства доступны только для чтения. В этих запросах используются маски полей, указывающие на необходимость изменения только контура, чтобы защитить код от будущих изменений API. Использование масок полей также повышает производительность.
Ниже представлен протокол запроса для редактирования контура изображения или видео:
POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
"requests": [
{
"updateImageProperties": {
"objectId": IMAGE_ELEMENT_ID,
"fields": "outline",
"imageProperties": {
"outline": {
"dashStyle": "SOLID",
"outlineFill": {
"solidFill": {
"alpha": 0.8,
"color": {
"themeColor": "ACCENT5"
}
}
},
"weight": {
"magnitude": 3,
"unit": "PT"
}
}
}
}
},
{
"updateVideoProperties": {
"objectId": VIDEO_ELEMENT_ID,
"fields": "outline",
"videoProperties": {
"outline": {
"dashStyle": "DASH_DOT",
"outlineFill": {
"solidFill": {
"alpha": 0.8,
"color": {
"themeColor": "ACCENT1"
}
}
},
"weight": {
"magnitude": 3,
"unit": "PT"
}
}
}
}
}
]
}Вот как могут выглядеть изображение и встроенное видео после этих обновлений:

Редактировать контур фигуры
Приведенный ниже пример кода presentations.batchUpdate демонстрирует, как использовать метод UpdateShapePropertiesRequest для обновления внешнего вида контура существующей фигуры (указанной по PAGE_ELEMENT_ID ).
Запросы вносят следующие изменения в объект:
- Устанавливает цвет контура в соответствии с цветом темы
ACCENT5с частичной прозрачностью. - Устанавливает толщину контура на 3 пункта.
- Устанавливает стиль контура на
LONG_DASH.
В приведенных здесь запросах используются маски полей для сохранения неизмененных свойств формы (например, цвета заливки формы). Использование масок полей также повышает производительность.
Ниже представлен протокол запроса на редактирование контура фигуры:
POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
"requests": [
{
"updateShapeProperties": {
"objectId": PAGE_ELEMENT_ID,
"fields": "outline",
"shapeProperties": {
"outline": {
"dashStyle": "LONG_DASH",
"outlineFill": {
"solidFill": {
"alpha": 0.6,
"color": {
"themeColor": "ACCENT5"
}
}
},
"weight": {
"magnitude": 3,
"unit": "PT"
}
}
}
}
}
]
}Вот как может выглядеть фигура после этих обновлений:

Форматирование текста в фигуре или текстовом поле.
Приведенный ниже пример кода presentations.batchUpdate демонстрирует, как использовать метод UpdateTextStyleRequest для изменения внешнего вида текста в существующей фигуре (указанной по PAGE_ELEMENT_ID ).
Запросы вносят следующие изменения в объект:
- Устанавливает цвет текста в соответствии с цветом темы
ACCENT5. - Устанавливает жирный, курсивный шрифт Corsiva размером 18 пунктов.
- Подчеркивает текст.
В этих запросах используются маски полей для сохранения свойств стиля текста, которые не изменяются (например, цвет фона, ссылки или смещения базовой линии). Использование масок полей также повышает производительность.
Ниже представлен протокол запроса для форматирования текста в фигуре или текстовом поле:
POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{ "requests": [ { "updateTextStyle": { "objectId": PAGE_ELEMENT_ID, "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" } } } ] }
Вот как может выглядеть текст в виде фигуры после этих обновлений:

Импортировать диаграмму из Google Таблиц
Приведенный ниже пример кода presentations.batchUpdate демонстрирует, как использовать метод CreateSheetsChartRequest для импорта диаграммы из листа и размещения ее на слайде, указанном в поле PAGE_ID .
Для запроса требуется идентификатор электронной таблицы (указанный параметром SPREADSHEET_ID ) и идентификатор диаграммы в электронной таблице (указанный параметром SPREADSHEET_CHART_ID ). Идентификатор диаграммы в презентации Slides указывается параметром PRESENTATION_CHART_ID .
Этот запрос также устанавливает LinkingMode для диаграммы в слайдах в значение LINKED , чтобы вы могли обновлять встроенную диаграмму, если обновляется диаграмма в исходной электронной таблице.
Ниже представлен протокол запроса для импорта диаграммы из Google Sheets:
POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
"requests": [
{
"createSheetsChart": {
"objectId": PRESENTATION_CHART_ID,
"spreadsheetId": SPREADSHEET_ID,
"chartId": SPREADSHEET_CHART_ID,
"linkingMode": "LINKED",
"elementProperties": {
"pageObjectId": PAGE_ID,
"size": {
"width": {
"magnitude": 4000000,
"unit": "EMU"
},
"height": {
"magnitude": 4000000,
"unit": "EMU"
}
},
"transform": {
"scaleX": 1,
"scaleY": 1,
"translateX": 100000,
"translateY": 100000,
"unit": "EMU"
}
}
}
]
}Обновить диаграмму из Google Таблиц
The following presentations.batchUpdate code sample shows how to use the RefreshSheetsChartRequest method to refresh a linked chart in a presentation, replacing it with the latest version of that chart from the Sheets source spreadsheet. The request requires the chart ID within the Slides presentation (specified by the PRESENTATION_CHART_ID ).
Ниже представлен протокол запроса для обновления диаграммы из Google Sheets:
POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
"requests": [
{
"refreshSheetsChart": {
"objectId": PRESENTATION_CHART_ID
}
}
]
}