打开复制的Google幻灯片文件

时间:2018-09-06 16:40:55

标签: google-apps-script google-drive-api google-slides

我希望复制一个“模板” Google幻灯片文件,然后修改新创建的文件中的文本字段。打开复制的文件时出现问题。我是Google脚本的新手,发现似乎可以正常工作的一些代码,但出现错误。这是代码和错误:

function createDuplicateDocument(sourceId, name) {
    var source = DriveApp.getFileById(sourceId);
    var targetFolder = DriveApp.getFolderById(TARGET_FOLDER);
    var newFile = source.makeCopy(name, targetFolder);
    return DocumentApp.openById(newFile.getId()); 
}
// Document is missing (perhaps it was deleted, or you don't have read access?) (line 35, file "Code") 

var SOURCE_TEMPLATE = "1OUztWdzh..."; // Google Doc id from the document template (Get id from the URL)
var TARGET_FOLDER = "1xsbW_pjZuN..."; //"Sent_Certificates"; // In which Google Drive we toss the target documents
var name = TRAINING_DATE + "_" + TRAINING_TYPE + "_" +TRAINING_USER
var filTxtFile = createDuplicateDocument(SOURCE_TEMPLATE, name);
replaceString(filTxtFile, "TRAINING_USER", TRAINING_USER);

运行代码后,我可以在正确的文件夹中看到新文件,但是由于某种原因,脚本看不到它。 我还测试了将函数的代码与代码内联,但是无法打开复制的文件。我只是收到一条错误消息,指出文件丢失。我已经确保退出所有其他帐户,甚至设置了睡眠计时器以查看它是否执行得太快。

最后,我的目标是使用Google表单中的用户信息填写培训证书。

为什么会出现该错误以及如何解决。 谢谢

1 个答案:

答案 0 :(得分:1)

因为要处理幻灯片文件,所以必须使用SlidesApp而不是DocumentApp打开它。 DocumentApp仅处理Google文档,这就是为什么您会收到此错误的原因。

public class GroupRepo{
private final GroupDao groupDao;
private final MemberDao memberDao;

public GroupRepo (Context context){
    DatabaseConfig db = DatabaseConfig.getDatabase(context);
    groupDao = db.groupDao();
    memberDao = db.memberDao();
}

public List<Group> getNonLiveGroup() {
    List<Group> result = null;
    new AsyncTask<Void, Void, List<Group>>() {
        @Override
        protected List<Group> doInBackground(Void... voids) {
            List<Group> m = null;
                m = groupDao.getGroup();
            return m;
        }
        @Override
        protected void onPostExecute(List<Group> group){
        }
    }.execute();
    return null;
}