gpt4 book ai didi

google-apps-script - 使用 google java 客户端复制电子表格后,自定义 google 应用程序脚本不起作用

转载 作者:行者123 更新时间:2023-12-04 19:30:25 27 4
gpt4 key购买 nike

我有一个带有自定义加载项的 google 电子表格模板,我正在尝试复制它

def copyTemplateSpreadsheet(Drive driveService) {
File templateCopy = new File()
templateCopy.setName("excel-template")

def copiedFile = driveService.files().copy(templateSpreadsheetId, templateCopy).execute()
setCorrectPermission(driveService, copiedFile.getId())
copiedFile
}

private void setCorrectPermission(Drive driveService, def fileId) {
Permission newPermission = new Permission();
newPermission.setType("anyone");
newPermission.setRole("writer");
driveService.permissions().create(fileId, newPermission).execute();
}

问题是复制的电子表格已损坏加载项(未显示在加载项菜单中)。脚本编辑器中有正确的附加代码,但是当我尝试运行任何函数时,我收到错误消息
"We're sorry, a server error occurred. Please wait a bit and try again"

请记住,完全相同的代码在我的模板电子表格中运行良好。即使我删除所有代码并将 onOpen 函数留空,错误仍然出现。

当我使用常规的 google 驱动器网站 (drive.google.com) 复制附加组件时效果很好,当我尝试使用 google 的 API Explorer ( https://developers.google.com/drive/v3/reference/files/copy#try-it ) 时也可以正常工作。问题似乎只有在使用 sdk 时才会出现(至少是 java 一个 - 我没有尝试过其他任何一个)

另请记住,我正在使用本文中所述创建的 Google 服务帐户 https://developers.google.com/identity/protocols/OAuth2ServiceAccount#creatinganaccount

并使用以下代码创建 Drive 实例
 Drive getDriveService() throws GeneralSecurityException, IOException, URISyntaxException {
HttpTransport httpTransport = new NetHttpTransport();
JacksonFactory jsonFactory = new JacksonFactory();
GoogleCredential credential = new GoogleCredential.Builder()
.setTransport(httpTransport)
.setJsonFactory(jsonFactory)
.setServiceAccountId(G_SERVICE_EMAIL)
.setServiceAccountScopes(Arrays.asList(DriveScopes.DRIVE))
.setServiceAccountPrivateKeyFromP12File(PKC_12_FILE)
.build();
Drive service = new Drive.Builder(httpTransport, jsonFactory, null)
.setHttpRequestInitializer(credential)
.build();


return service;
}

不确定这是否重要,尤其是因为其他一切似乎都很好

任何修复想法?只要它们有效,我对任何变通方法持开放态度。
我也可以创建新文件并添加附加代码,但似乎我无法使用 API

最佳答案

我找到了我在那里描述的可接受的解决方案
How can I create spreadsheet with included gs script by API?

希望它可以帮助某人;)

关于google-apps-script - 使用 google java 客户端复制电子表格后,自定义 google 应用程序脚本不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37967100/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com