我正在尝试实施讨论here的Revit to Excel导出器。该按钮正在工作,并将urn和令牌传递给
ForgeXLS.downloadXLSX(urn, token, callback /*Optional*/);
我正在扩展here中发现的Extensions Skeleton教程。
范围是否可能有问题...如果可以,那么您是否可以指导我如何调整我要提取的访问令牌的范围?
ForgeXLSX.downloadXLSX的代码为:
downloadXLSX: function (urn, token, status) {
var fileName = decodeURIComponent(atob(urn).replace(/^.*[\\\/]/, '')) + '.xlsx';
if (fileName.indexOf('.rvt') == -1) {
if (status) status(true, 'Not a Revit file, aborting.');
return;
}
if (status) {
status(false, 'Preparing ' + fileName);
status(false, 'Reading project information....');
}
this.prepareTables(urn, token, function (tables) {
if (status) status(false, 'Building XLSX file...');
var wb = new Workbook();
jQuery.each(tables, function (name, table) {
if (name.indexOf('<')==-1) { // skip tables starting with <
var ws = ForgeXLS.sheetFromTable(table);
wb.SheetNames.push(name);
wb.Sheets[name] = ws;
}
});
var wbout = XLSX.write(wb, {bookType: 'xlsx', bookSST: true, type: 'binary'});
saveAs(new Blob([s2ab(wbout)], {type: "application/octet-stream"}), fileName);
if (status) status(true, 'Downloading...');
})
},
答案 0 :(得分:0)
经过一番摸索(和朋友的一些帮助)后,才发现这毕竟是作用域。如果需要访问权限,则可以在config.js文件的公共范围内添加“ data:read”范围,这样导出程序就可以使用了。
scopes: {
// Required scopes for the server-side application
internal: ['bucket:create', 'bucket:read', 'data:read', 'data:create', 'data:write'],
// Required scope for the client-side viewer
public: ['viewables:read', 'data:read']
}
答案 1 :(得分:0)
从范围上讲,您将同时需要 data:read bucket:read 来拥有对模型元数据的充分访问权限:
确保您的服务器在请求正文中正确设置了范围,以获取访问令牌。
在调用Forge端点的过程中观察URN和Token变量的最佳选择是here at ForgeXLS.forgeGetRequest: