您是否正在寻找这个问题的解决方案?如果你仍然这样做,这个答案怎么样?最近,添加了 Google Apps Script API。这样,用户就可以轻松管理 GAS 项目文件。此示例脚本使用此 API。
要使用此示例,请执行以下安装流程。
安装:
- 在 API 控制台启用 Google Apps 脚本 API。
- 检索当前范围。
- 在脚本编辑器上,文件 -> 项目属性 -> 范围
- 复制范围。
- 将
https://www.googleapis.com/auth/script.projects 和https://www.googleapis.com/auth/script.external_request 的范围添加到脚本编辑器的Manifests 文件(appsscript.json)。
- 在脚本编辑器上,查看 -> 显示清单文件
- 将
"oauthScopes": ["https://www.googleapis.com/auth/script.projects", "https://www.googleapis.com/auth/script.external_request", "### other scopes ###"] 添加到appsscript.json,并保存。
- 复制并粘贴此示例脚本,然后运行。并请授权。
脚本流程
- 检索源项目的文件名。
- 检索源项目。
- 在 Google 文档中创建新项目(绑定脚本)。
- 通过检索到的源项目更新创建的新项目。
通过这些流程,源电子表格的项目(绑定脚本)被复制到目标电子表格。
示例脚本:
在启动此示例之前,请输入源电子表格的项目 ID 和目标电子表格 ID。
function main() {
var srcProjectId = "### project ID ###"; // Source project ID
var dstGoogleDocsId = "### file ID of Google Docs ###"; // Destination spreadsheet ID
var baseUrl = "https://script.googleapis.com/v1/projects";
var accessToken = ScriptApp.getOAuthToken();
// Retrieve filename of bound-script project.
var srcName = JSON.parse(UrlFetchApp.fetch(baseUrl + "/" + srcProjectId, {
method: "get",
headers: {"Authorization": "Bearer " + accessToken}
}).getContentText()).title;
// Retrieve bound-script project.
var obj = UrlFetchApp.fetch(baseUrl + "/" + srcProjectId + "/content", {
method: "get",
headers: {"Authorization": "Bearer " + accessToken}
}).getContentText();
// Create new bound script and retrieve project ID.
var dstId = JSON.parse(UrlFetchApp.fetch(baseUrl, {
method: "post",
contentType: 'application/json',
headers: {"Authorization": "Bearer " + accessToken},
payload: JSON.stringify({"title": srcName, "parentId": dstGoogleDocsId})
}).getContentText()).scriptId;
// Upload a project to bound-script project.
var res = JSON.parse(UrlFetchApp.fetch(baseUrl + "/" + dstId + "/content", {
method: "put",
contentType: 'application/json',
headers: {"Authorization": "Bearer " + accessToken},
payload: obj
}).getContentText());
}
注意:
- 此脚本将源项目复制为新项目。所以如果谷歌文档中有一些绑定的脚本项目,这个脚本不会影响现有的脚本。
- 但是,如果您使用此示例脚本,请首先使用新项目和新 Google 文档进行测试。在此,请理解这个脚本的工作。
参考资料:
如果我误解了你的问题,我很抱歉。
更新日期:2019 年 7 月 4 日
2019 年 4 月 8 日,Google Apps 脚本项目的规范发生了更改。请参阅Google Cloud Platform Projects 的详细信息。当您将 Google Apps Script API 与 2019 年 4 月 8 日之后创建的 GAS 项目一起使用时,请创建一个新的 Cloud Platform Project 并将 GAS 项目链接到创建的 Cloud Platform Project。 (在脚本编辑器,Resources --> Cloud Platform project)这样就可以使用上面的流程了。