Google 幻灯片 API deleteObject() 当对象不存在时
Google Slides API deleteObject() when object not exists
我想更新 Google 幻灯片中的现有 object/image。只要对象存在,这就有效:
var requests = [
{
"deleteObject": {
"objectId": 'image01'
}
},
{
"createImage": {
"url": imageUrl,
"objectId": 'image01',
"elementProperties": {
"pageObjectId": pageId,
"size": {
"width": {
"magnitude": 250,
"unit": "PT"
},
"height": {
"magnitude": 250,
"unit": "PT"
}
},
"transform": {
"scaleX": 1,
"scaleY": 1,
"translateX": 200,
"translateY": 100,
"unit": "PT"
}
}
}
}
];
var response = Slides.Presentations.batchUpdate({'requests': requests}, presentationId);
但是,如果用户之前删除了演示文稿中的对象,则不会重新创建它。
出现以下错误信息:
Invalid requests[0].deleteObject: The object (image01) could not be
found.
如何查询演示文稿中是否存在对象?
如何使用 slides.presentations.get 检索对象列表?为了确认对象是否存在,它对slides.presentations.get的字段使用slides/pageElements/objectId
。您可以使用对象列表知道对象的存在。
示例脚本:
var response = Slides.Presentations.get(presentationId);
response.slides.forEach(function(e1, i1){
e1.pageElements.forEach(function(e2){
Logger.log("Page %s, objectId %s", i1 + 1, e2.objectId);
});
});
结果:
Page 1.0, objectId ###
Page 2.0, objectId ###
Page 3.0, objectId ###
如果这对您没有用,我很抱歉。
编辑:
如果你想从整个 JSON 中搜索一个值,你可以使用下面的简单脚本。当 value2
包含在 sampledata
中时, ~JSON.stringify(sampledata).indexOf('value2')
变为真。在此示例中,显示 ok
,因为 value2 包含在示例数据中。
但这有点牵强。如果你能知道JSON的完整结构,我觉得用key比较value比较好
var sampledata = {key1: "value1", key2: "value2"};
if (~JSON.stringify(sampledata).indexOf('value2')) {
Logger.log("ok")
}
我想更新 Google 幻灯片中的现有 object/image。只要对象存在,这就有效:
var requests = [
{
"deleteObject": {
"objectId": 'image01'
}
},
{
"createImage": {
"url": imageUrl,
"objectId": 'image01',
"elementProperties": {
"pageObjectId": pageId,
"size": {
"width": {
"magnitude": 250,
"unit": "PT"
},
"height": {
"magnitude": 250,
"unit": "PT"
}
},
"transform": {
"scaleX": 1,
"scaleY": 1,
"translateX": 200,
"translateY": 100,
"unit": "PT"
}
}
}
}
];
var response = Slides.Presentations.batchUpdate({'requests': requests}, presentationId);
但是,如果用户之前删除了演示文稿中的对象,则不会重新创建它。
出现以下错误信息:
Invalid requests[0].deleteObject: The object (image01) could not be found.
如何查询演示文稿中是否存在对象?
如何使用 slides.presentations.get 检索对象列表?为了确认对象是否存在,它对slides.presentations.get的字段使用slides/pageElements/objectId
。您可以使用对象列表知道对象的存在。
示例脚本:
var response = Slides.Presentations.get(presentationId);
response.slides.forEach(function(e1, i1){
e1.pageElements.forEach(function(e2){
Logger.log("Page %s, objectId %s", i1 + 1, e2.objectId);
});
});
结果:
Page 1.0, objectId ###
Page 2.0, objectId ###
Page 3.0, objectId ###
如果这对您没有用,我很抱歉。
编辑:
如果你想从整个 JSON 中搜索一个值,你可以使用下面的简单脚本。当 value2
包含在 sampledata
中时, ~JSON.stringify(sampledata).indexOf('value2')
变为真。在此示例中,显示 ok
,因为 value2 包含在示例数据中。
但这有点牵强。如果你能知道JSON的完整结构,我觉得用key比较value比较好
var sampledata = {key1: "value1", key2: "value2"};
if (~JSON.stringify(sampledata).indexOf('value2')) {
Logger.log("ok")
}