SuperAPI AI 工具集

cap-apps-domo-js

编程与开发

查看项目

更新于 10-16 14:53

技能介绍

用途

该技能用于在 Domo 应用(App)开发中使用 domo.js(即 ryuu.js)SDK 的 API,涵盖环境信息读取、事件监听、页面导航和数据调用等场景。

安装与引入

React / npm 项目:

npm install ryuu.js
import domo from 'ryuu.js';

原生 JavaScript(CDN):

<script src="https://app.unpkg.com/ryuu.js@5.1.2"></script>

环境信息

可访问环境信息,但文档警告:这些值可被伪造,不要用于安全用途。

console.log(domo.env.userId);    // User ID (spoofable!)
console.log(domo.env.customer);  // Customer/instance name
console.log(domo.env.pageId);    // Current page ID
console.log(domo.env.locale);    // Locale (e.g., 'en-US')
console.log(domo.env.platform);  // 'desktop' or 'mobile'

如需安全的用户验证:

// ✅ SECURE - Server-verified identity
const verifiedEnv = await domo.get('/domo/environment/v1/');
const { userId, userName, userEmail } = verifiedEnv;

// Or use IdentityClient from toolkit
import { IdentityClient } from '@domoinc/toolkit';
const response = await IdentityClient.get();
const user = response.body; // { id, displayName, emailAddress, role }

事件监听

// React to dataset updates on the page
domo.onDataUpdated((alias) => {
  console.log(`Dataset ${alias} was updated`);
  // Refresh your data or do nothing to prevent auto-reload
});

// React to page filter changes
domo.onFiltersUpdated((filters) => {
  console.log('Filters changed:', filters);
  // Apply filters to your visualization
});

// React to Domo variable changes
domo.onVariablesUpdated((variables) => {
  console.log('Variables updated:', variables);
});

导航

注意:在 Domo 应用中,带 href 的标准锚点标签不能正常工作,必须使用 domo.navigate()。

// Navigate within Domo
domo.navigate('/page/123456789');

// Open in new tab
domo.navigate('/page/123456789', true);

// External URLs also work
domo.navigate('https://example.com', true);

数据调用

并行加载多个数据集:

// Load multiple datasets in parallel
const [sales, customers, products] = await domo.getAll([
  '/data/v1/sales',
  '/data/v1/customers',
  '/data/v1/products'
]);

以编程方式更新页面筛选器:

domo.requestFiltersUpdate(
  [
    {
      column: 'category',
      operator: 'IN',
      values: ['Electronics', 'Clothing'],
      dataType: 'STRING'
    }
  ],
  true, // apply to page
  () => console.log('Filter update acknowledged'),
  (response) => console.log('Filter update completed:', response)
);

适用场景

适用于在 Domo 平台内开发应用、并在其中读取环境信息、监听数据集与筛选器变化、执行页面内或外部导航、批量获取数据集以及程序化控制页面筛选器的开发工作。

限制

环境信息中的 userId 等字段可被伪造,不能用于安全校验;Domo 应用中的导航需使用 domo.navigate(),标准 href 锚点标签无法正常工作。其余如收费、价格、平台或效果的更多细节暂未提供。