如何将自定义数据从机器人自适应卡传递到团队任务模块
How to pass custom data into teams task module from bot adaptive card
我有一个团队机器人 (nodejs),它使用一些 table 数据呈现自适应卡片。我们希望通过在任务模块内构建一个 javascript 小部件来提供更丰富的数据查看体验,该小部件将使用交互式 D3 图表显示数据。
自适应卡基本上会有一个“查看更多”按钮,该按钮将调用包含 html 内容的任务模块。
我不明白的部分是如何从任务模块中的 html 访问数据。我意识到有一个名为 microsoftTeams
的全局对象包含元数据和上下文,但它似乎并不特定于被单击的自适应卡(调用任务模块的自适应卡)。它具有更多用于团队的全局信息,例如用户和对话元数据。
在将任务模块作为自定义参数调用时,我能够将数据插入到 taskInfo
对象中。所以我的问题是,有没有办法从 HTML iframe 内部访问 taskInfo
对象?
你可以看看这个Sample。这里有 HTML 个可以自定义的页面。您可以创建自己的网页并集成到任务模块中。
我正在使用查询字符串从服务器获取数据到客户端(可能有更好的方法,希望@Saonti-MSFT 以 easier/cleaner 方式返回)。
这是我的任务对象:
task: {
type: "continue",
value: {
url: `${process.env.HostName}?message=${JSON.stringify(Buffer.from(message).toString("base64"))}`,
width: 500,
height: 736
},
}
然后在客户端获取搜索查询并将其转换回执行以下操作
const urlParams = new URLSearchParams(window.location.search);
const message = urlParams.get('message');
// Needed to remove the quotes and convert spaces to "+" as this was getting lost
const data = atob(message.replace(/"/g,"").replace(/\s/g, "+"));
注意:我只是对单个字符串执行此操作,但我不明白为什么如果将对象转换为字符串就不能使用对象服务器然后在客户端解析它。
希望对您有所帮助
我有一个团队机器人 (nodejs),它使用一些 table 数据呈现自适应卡片。我们希望通过在任务模块内构建一个 javascript 小部件来提供更丰富的数据查看体验,该小部件将使用交互式 D3 图表显示数据。
自适应卡基本上会有一个“查看更多”按钮,该按钮将调用包含 html 内容的任务模块。
我不明白的部分是如何从任务模块中的 html 访问数据。我意识到有一个名为 microsoftTeams
的全局对象包含元数据和上下文,但它似乎并不特定于被单击的自适应卡(调用任务模块的自适应卡)。它具有更多用于团队的全局信息,例如用户和对话元数据。
在将任务模块作为自定义参数调用时,我能够将数据插入到 taskInfo
对象中。所以我的问题是,有没有办法从 HTML iframe 内部访问 taskInfo
对象?
你可以看看这个Sample。这里有 HTML 个可以自定义的页面。您可以创建自己的网页并集成到任务模块中。
我正在使用查询字符串从服务器获取数据到客户端(可能有更好的方法,希望@Saonti-MSFT 以 easier/cleaner 方式返回)。
这是我的任务对象:
task: {
type: "continue",
value: {
url: `${process.env.HostName}?message=${JSON.stringify(Buffer.from(message).toString("base64"))}`,
width: 500,
height: 736
},
}
然后在客户端获取搜索查询并将其转换回执行以下操作
const urlParams = new URLSearchParams(window.location.search);
const message = urlParams.get('message');
// Needed to remove the quotes and convert spaces to "+" as this was getting lost
const data = atob(message.replace(/"/g,"").replace(/\s/g, "+"));
注意:我只是对单个字符串执行此操作,但我不明白为什么如果将对象转换为字符串就不能使用对象服务器然后在客户端解析它。
希望对您有所帮助