似乎我能找到的所有使用 Docs API 和 Apps 脚本的文档都已被弃用。我已经尝试了以下代码的许多变体,但我不断从最后一行收到 404 错误。我可以打印 doc 对象的属性并找到当前图像,所以这实际上只是更新请求,这似乎是问题所在。
function copyDoc() {
request = {
name: "Copy of Template",
};
doc = Drive.Files.copy(resource= request, fileId= '1AgUGJ5a0_O4U9Jnu9QWG5MX4BGwfmiZvv437xC1bZms');
doc = Docs.Documents.get(doc.id, {'includeTabsContent': true});
obj = doc.tabs[0].documentTab.inlineObjects
obj_id = Object.entries(obj)[0][0]
request = {
"requests": [
{
"replaceImage": {
"imageObjectId": obj_id,
"uri": "https://dummyimage.com/300x200/000/fff",
"imageReplaceMethod": 'CENTER_CROP',
}
}
],
}
Docs.Documents.batchUpdate(resource=request, documentId= doc.id)
}
在你的展示脚本中,我认为需要将
doc.id
修改为doc.documentId
。所以,请修改如下。
Docs.Documents.batchUpdate(resource=request, documentId= doc.id)
Docs.Documents.batchUpdate(resource = request, documentId = doc.documentId);
另外,我认为您的显示脚本可以修改如下。
function copyDoc() {
const fileId = "###"; // Please set your original Google Document ID.
const request1 = { name: "Copy of Template" };
const copiedFile = Drive.Files.copy(request1, fileId);
const docId = copiedFile.id;
const doc = Docs.Documents.get(docId, { 'includeTabsContent': true });
const obj = doc.tabs[0].documentTab.inlineObjects;
const obj_id = Object.entries(obj)[0][0];
const request2 = {
"requests": [
{
"replaceImage": {
"imageObjectId": obj_id,
"uri": "https://dummyimage.com/300x200/000/fff",
"imageReplaceMethod": 'CENTER_CROP',
}
}
]
};
Docs.Documents.batchUpdate(request2, docId);
}