我不确定您是否尝试发布工作表并获取 URL 或更改已发布工作表的 URL。我将涵盖这两个主题。
发布类型
首先,您需要确定您想要发布的类型。以下是每种发布类型的简短说明。可以在此处找到有关发布的更多信息。
setReadOnlyLiteEnabled:没有行附件或讨论的工作表的轻量级版本。
setReadOnlyFullEnabled:表格的丰富版本,能够下载行附件和讨论。
setReadWriteEnabled : 丰富的工作表版本,能够编辑单元格和管理行附件和讨论。
setIcalEnabled:将此工作表中的关键日期添加到您的非 Smartsheet 日历
使用 Java SDK 发布工作表
使用您的示例代码,您似乎正在尝试发布具有 setReadWriteEnabled 类型的工作表。因此,这里有一个示例可以完成此操作并打印出工作表发布位置的 URL。
SheetPublish sheetPublish = new SheetPublish.PublishStatusBuilder().setIcalEnabled(false).setReadOnlyFullEnabled(false).
setReadOnlyLiteEnabled(false).setReadWriteEnabled(true).build();
SheetPublish sheetPublishResult = smartsheet.sheets().updatePublishStatus(7298027523204996L, sheetPublish);
System.out.println(sheetPublishResult.getReadWriteUrl());
更改已发布的工作表 URL
目前没有生成新 URL 的选项。
setReadWriteEnabled(false)
如果您必须删除对特定 URL 上已发布工作表的访问权限,则可以通过将相应类型设置为 false(例如)来关闭发布设置。
smartsheet API(Java SDK 使用)记录了我们在此位置发布工作表时可以设置的内容。
将工作表复制到新工作表然后发布新工作表是另一种选择。这将为您提供一个新的发布 URL,因为这是一个新工作表。这可以通过如下代码来完成
// Setup a sheet to copy
Sheet sheet = new Sheet();
sheet.setFromId(7298027523204996L);
// Copy the sheet
Sheet newSheet = smartsheet.sheets().createSheetFromExisting(sheet, EnumSet.allOf(ObjectInclusion.class));
// Setup what we will publish
SheetPublish sheetPublish = new SheetPublish.PublishStatusBuilder().setIcalEnabled(false).setReadOnlyFullEnabled(false).
setReadOnlyLiteEnabled(false).setReadWriteEnabled(true).build();
// publish the new sheet
SheetPublish sheetPublishResult = smartsheet.sheets().updatePublishStatus(newSheet.getId(), sheetPublish);
System.out.println(sheetPublishResult.getReadWriteUrl());