You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

2024年2月APS维护后IoT扩展模型加载失败及热力图显示异常求助

2024年2月APS维护后IoT扩展模型加载失败及热力图显示异常求助

你遇到的问题核心是2024年2月APS OAuth v1接口正式下线,加上IoT扩展与Viewer、数据的适配问题,我来一步步帮你梳理解决思路:

1. 别再手动改node_modules!用官方新SDK解决Token问题

你之前直接修改node_modules/forge-apis/arc/auth/OAuth2TwoLegged.js里的tokenUrl,这种做法非常不稳定(依赖更新就会覆盖修改),而且完全没必要——APS已经推出了全新的@aps_sdk系列包,你的package.json里已经引入了@aps_sdk/authentication,直接替换旧的token获取逻辑即可:

替换你的aps.js代码为:

const { AuthenticationClient } = require('@aps_sdk/authentication');
const { SdkManagerBuilder } = require('@aps_sdk/autodesk-sdkmanager');
const { APS_CLIENT_ID, APS_CLIENT_SECRET } = require('../config.js');

// 初始化SDK管理器
const sdkManager = SdkManagerBuilder.create().build();
const authClient = new AuthenticationClient(sdkManager);

async function getPublicToken() {
  // 调用v2接口获取两足令牌
  const credentials = await authClient.getTwoLeggedToken(APS_CLIENT_ID, APS_CLIENT_SECRET, ['viewables:read']);
  return {
    access_token: credentials.access_token,
    expires_in: credentials.expires_in
  };
}

module.exports = { getPublicToken };

为什么要这么改?

  • 旧的forge-apis包默认使用已下线的OAuth v1接口,新的@aps_sdk包默认调用v2接口,完全适配2024年2月后的APS服务
  • 避免手动修改依赖文件,保证项目的可维护性

2. 3D模型不显示的排查要点

当Token问题解决后模型仍不显示,检查这几个关键项:

  • 验证模型URN格式:确保APS_MODEL_URN是完整的带urn:前缀的Base64编码值(比如urn:dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6...),且模型已在APS平台完成翻译(可以通过APS开发者门户的「Model Derivative」服务查看翻译状态)
  • 前端Token获取链路:确认viewer.js里的getAccessToken函数能正确调用后端/api/aps/token接口拿到有效令牌,比如补充前端的Token获取逻辑:
    async function getAccessToken() {
      const resp = await fetch('/api/aps/token');
      if (!resp.ok) throw new Error('Failed to get token');
      return await resp.json();
    }
    // 然后在initViewer里传入这个函数
    Autodesk.Viewing.Initializer({ env: 'AutodeskProduction2', api: 'streamingV2', getAccessToken }, ...)
    
  • 可视图配置:你的APS_MODEL_VIEW为空,当调用getDefaultGeometry(true)时会加载模型的所有可视图,确保模型本身包含可渲染的3D视图(部分2D图纸或未正确翻译的模型会导致加载失败)

3. 热力图显示异常(白背景灰斜纹)的解决思路

当模型元素能显示但热力图异常,大概率是数据不匹配或扩展配置问题:

  • 检查时间范围配置:你的DEFAULT_TIMERANGE_START和DEFAULT_TIMERANGE_END设置的是2025年1月,但如果你的IoT传感器数据没有这个时间段的记录,扩展会因为没有数据渲染而显示空状态(白背景灰斜纹),建议调整时间范围到有真实数据的区间
  • 验证IoT数据与模型的绑定:APS IoT扩展需要模型元素(比如Room)与传感器数据通过属性关联(比如设备ID、传感器ID),确保:
    1. 模型在翻译时包含了必要的关联属性
    2. 后端提供的IoT数据接口返回的记录包含与模型属性匹配的标识
  • 确认扩展正确加载:在initViewer的extensions参数中确保包含'Autodesk.IoT',且扩展初始化时传入了正确的数据源配置

最后一步:清理依赖并重启项目

  1. 删除node_modules和package-lock.json
  2. 重新执行npm install
  3. 重启项目,依次验证Token获取、模型加载、热力图渲染

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.08 07:18:03