从JSON文件导入Google App脚本项目

时间:2015-02-22 21:01:30

标签: google-apps-script

在Google云端硬盘中,可以将应用脚本项目下载为.json文件。

当此类文件导回到Google云端硬盘时,它与谷歌脚本编辑器应用程序无法正确关联。

有没有办法正确地做到这一点?

2 个答案:

答案 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