Как насчет этой модификации?Из вашего сценария я предполагаю, что вы извлекаете res
, используя slides.presentations.pages.get()
.
Точка модификации:
- Объекты с
res.data.pageElements.shape.text.textElements.textRun
и без него существуют в элементах возвращаемогообъект. res.data.pageElements
, у которого нет свойства shape
. res.data.pageElements.shape
, у которого нет свойства text
. res.data.pageElements.shape.text
, у которого нет свойстваtextElements
. res.data.pageElements.shape.text.textElements
, у которого нет свойства textRun
.
Я думаю, что это может быть причиной вашей проблемы.
Модифицированный скрипт:
slides.presentations.pages.get({
presentationId: presentationId,
pageObjectId: pageObjectId,
}, (err, res) => {
if (err) {
console.log(err);
} else {
res.data.pageElements.forEach((file) => {
if (file.shape && file.shape.text && file.shape.text.textElements) {
let textElements = file.shape.text.textElements;
textElements.forEach(function(each) {
if ("textRun" in each) {
console.log(each.textRun.content);
}
});
}
});
}
});
Примечание:
- Я думаю, что вы также можете использовать
if ("shape" in file && "text" in file.shape && "textElements" in file.shape.text) {
вместо if (file.shape && file.shape.text && file.shape.text.textElements) {
. - Если вы извлекаете
res
, используя slides.presentations.get()
, измените res.data.pageElements.forEach((file) => {})
на res.data.slides.forEach((slide) => {slide.pageElements.forEach((file) => {})})
.
Если я неправильно понимаю вашу проблему, пожалуйста, сообщите мне.Я хотел бы изменить его.