在Google云端硬盘中,可以将应用脚本项目下载为.json
文件。
当此类文件导回到Google云端硬盘时,它与谷歌脚本编辑器应用程序无法正确关联。
有没有办法正确地做到这一点?
答案 0 :(得分:3)
导入和导出Apps脚本文件需要使用导入/导出API。
要修改现有脚本,您需要拥有范围为https://www.googleapis.com/auth/drive.scripts的Oauth2令牌
要更新文件,您将会" PUT"更新的JSON: https://www.googleapis.com/upload/drive/v2/files/ {FILEID}
Apps脚本文件看起来像
{
files:
[
{
name:{fileName},
type:{server_js or html },
source:{source code for this file},
id:{Autogenerated. Omit this key for a new file, or leave value unmodified for an updated file},
},
{...}
]
}
添加文件: 使用键名称,类型,源
将对象添加到files数组修改文件: 修改文件对象的名称,类型或来源的值,但不要修改id。
当您将文件返回时,请确保将整个文件数组放在修改中,而不仅仅是新文件对象。
要在GAS中进行修改,看起来像:
var scriptFiles = JSON.parse(downloadedJSONFile);
scriptFiles.files.push({"name":fileName,"type":fileType,"source":source});
var url = "https://www.googleapis.com/upload/drive/v2/files/"+scriptId;
var parameters = { method : 'PUT',
headers : {'Authorization': 'Bearer '+ tokenWithProperScope,
payload : JSON.stringify(scriptFiles),
contentType:'application/vnd.google-apps.script+json',
muteHttpExceptions:true};
var response = UrlFetchApp.fetch(url,parameters);
为成功更改,您将获得200的响应代码。响应文本将包含所有新JSON文件,其中已为您添加的文件指定了id。
更多信息: https://developers.google.com/apps-script/import-export
答案 1 :(得分:0)
将mimetype设置为application/vnd.google-apps.script