SmartSheet-API: 更改读写发布URL
SmartSheet-API: change the readwrite publish URL
我正在尝试使用以下代码更改 URL 以供任何出版物编辑的智能表
Sheet sheet = null;
try {
sheet = smartsheet.sheets().getSheet(sheetId, null);
} catch (SmartsheetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
SheetPublish publish = new SheetPublish.PublishStatusBuilder().setReadOnlyFullEnabled(false).
setReadOnlyLiteEnabled(false).setIcalEnabled(false).setReadWriteEnabled(true).build();
publish.setReadWriteUrl(URL);
smartsheet.sheets().updatePublishStatus(sheet.getId(), publish);
} catch (SmartsheetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
当我 运行 这时,我得到一个 InvalidRequestException。我需要能够改变这个。
我不确定您是要发布 sheet 并获取 URL 还是更改 URL 以获得已发布的 sheet。我将涵盖这两个主题。
发布类型
首先您需要决定您想要发布的类型。以下是每种发布类型的简短描述。有关发布的更多信息,请参见 here。
setReadOnlyLiteEnabled: Lightweight version of the sheet without row attachments or discussions.
setReadOnlyFullEnabled: Rich version of the sheet with the ability to download row attachments and discussions.
setReadWriteEnabled: Rich version of sheet with the ability to edit cells and manage row attachments and discussions.
setIcalEnabled: Add key dates from this sheet to your non-Smartsheet calendar
使用 Java SDK
发布 sheet
根据您的示例代码,您似乎在尝试发布具有 setReadWriteEnabled 类型的 sheet。因此,这是一个完成该操作并打印出 sheet 发布位置的 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());
更改已发布 Sheet URL
目前没有生成新 URL 的选项。
如果您必须在特定 URL 移除对已发布 sheet 的访问权限,则可以通过将适当的类型设置为 false(例如 setReadWriteEnabled(false)
)来关闭发布设置.
smartsheet API(Java SDK 使用)记录了我们在 this location 发布 sheet 时可以设置的内容。
将 sheet 复制到新的 sheet,然后发布新的 sheet 是另一种选择。这会给你一个新的发布 URL 因为这是一个新的 sheet。这可以通过如下代码完成
// 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());
我正在尝试使用以下代码更改 URL 以供任何出版物编辑的智能表
Sheet sheet = null;
try {
sheet = smartsheet.sheets().getSheet(sheetId, null);
} catch (SmartsheetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
SheetPublish publish = new SheetPublish.PublishStatusBuilder().setReadOnlyFullEnabled(false).
setReadOnlyLiteEnabled(false).setIcalEnabled(false).setReadWriteEnabled(true).build();
publish.setReadWriteUrl(URL);
smartsheet.sheets().updatePublishStatus(sheet.getId(), publish);
} catch (SmartsheetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
当我 运行 这时,我得到一个 InvalidRequestException。我需要能够改变这个。
我不确定您是要发布 sheet 并获取 URL 还是更改 URL 以获得已发布的 sheet。我将涵盖这两个主题。
发布类型
首先您需要决定您想要发布的类型。以下是每种发布类型的简短描述。有关发布的更多信息,请参见 here。
setReadOnlyLiteEnabled: Lightweight version of the sheet without row attachments or discussions.
setReadOnlyFullEnabled: Rich version of the sheet with the ability to download row attachments and discussions.setReadWriteEnabled: Rich version of sheet with the ability to edit cells and manage row attachments and discussions.
setIcalEnabled: Add key dates from this sheet to your non-Smartsheet calendar
使用 Java SDK
发布 sheet根据您的示例代码,您似乎在尝试发布具有 setReadWriteEnabled 类型的 sheet。因此,这是一个完成该操作并打印出 sheet 发布位置的 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());
更改已发布 Sheet URL
目前没有生成新 URL 的选项。
如果您必须在特定 URL 移除对已发布 sheet 的访问权限,则可以通过将适当的类型设置为 false(例如 setReadWriteEnabled(false)
)来关闭发布设置.
smartsheet API(Java SDK 使用)记录了我们在 this location 发布 sheet 时可以设置的内容。
将 sheet 复制到新的 sheet,然后发布新的 sheet 是另一种选择。这会给你一个新的发布 URL 因为这是一个新的 sheet。这可以通过如下代码完成
// 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());